Laravel 修改默认日志文件名称和位置的例子


Posted in PHP onOctober 17, 2019

修改默认日志位置

我们平常的开发中可能一直把laravel的日志文件放在默认位置不会有什么影响,但如果我们的项目上线时是全量部署,每次部署都是git中最新的代码,那这个时候每次都会清空我们的日志,显示这不是我们所期望的,好在laravel有提供我们修改的方法。

我们这里以放在/var/log/nginx/app/phphub/phphub.log为例

增加日志处理类#

首先我们新建文件,app/Foundation/Bootstrap/ConfigureLogging.php,代码如下:

<?php
 
namespace App\Foundation\Bootstrap;
 
use Illuminate\Log\Writer;
use Illuminate\Contracts\Foundation\Application;
 
class ConfigureLogging
{
 
 /**
  * 设置应用的Monolog处理程序
  *
  * @param \Illuminate\Contracts\Foundation\Application $app
  * @param \Illuminate\Log\Writer $log
  * @return void
  */
 public function configureHandlers(Application $app, Writer $log)
 {
  $method = 'configure'.ucfirst($app['config']['app.log']).'Handler';
 
  $this->{$method}($app, $log);
 }
 
 /**
  * 设置应用single模式下的Monolog处理程序
  *
  * @param \Illuminate\Contracts\Foundation\Application $app
  * @param \Illuminate\Log\Writer $log
  * @return void
  */
 protected function configureSingleHandler(Application $app, Writer $log)
 {
  $config = $app->make('config');
  $filename = $config->get('app.log_path', '/var/log/nginx/app/system') . '/' . $config->get('app.log_name', 'laravel') . '.log';
  $log->useFiles($filename);
 }
 
 /**
  * 设置应用daily模式下的Monolog处理程序
  *
  * @param \Illuminate\Contracts\Foundation\Application $app
  * @param \Illuminate\Log\Writer $log
  * @return void
  */
 protected function configureDailyHandler(Application $app, Writer $log)
 {
  $config = $app->make('config');
  $filename = $config->get('app.log_path', '/var/log/nginx/app/system') . '/' . $config->get('app.log_name', 'laravel') . '.log';
  $log->useDailyFiles(
   $filename,
   $app->make('config')->get('app.log_max_files', 5)
  );
 }
 
 /**
  * 设置应用syslog模式下的Monolog处理程序
  *
  * @param \Illuminate\Contracts\Foundation\Application $app
  * @param \Illuminate\Log\Writer $log
  * @return void
  */
 protected function configureSyslogHandler(Application $app, Writer $log)
 {
  $log->useSyslog($app->make('config')->get('app.log_name', 'laravel'));
 }
 
 /**
  * 设置应用errorlog模式下的Monolog处理程序
  *
  * @param \Illuminate\Contracts\Foundation\Application $app
  * @param \Illuminate\Log\Writer $log
  * @return void
  */
 protected function configureErrorlogHandler(Application $app, Writer $log)
 {
  $log->useErrorLog();
 }
}

配置日志存放路径#

在.env中增加

APP_NAME=phphub

在config/app.php中增加

/**
 * 应用程序名称
 */
'name' => env('APP_NAME', 'laravel'),
 
/**
 * 日志位置
 */
'log_path' => '/var/log/nginx/app/' . env('APP_NAME', 'laravel'),
 
/**
 * 日志文件名称
 */
'log_name' => env('APP_NAME', 'laravel'),
 
/**
 * 日志文件最大数
 */
'log_max_files' => '30',

应用我们新的处理类#

修改Bootstrap/app.php,在return $app前增加代码

$app->configureMonologUsing(function($monolog) use ($app) {
 $configureLogging = new App\Foundation\Bootstrap\ConfigureLogging();
 $configureLogging->configureHandlers($app, $app->log);
});

这时候我们可以使用\Log::info('test log info');测试一下,应该就会将日志记录在/var/log/nginx/app/phphub/phphub.log中了。

以上这篇Laravel 修改默认日志文件名称和位置的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
在PHP中使用与Perl兼容的正则表达式
Nov 26 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
PHP中的Streams详细介绍
Nov 12 PHP
php自定义分页类完整实例
Dec 25 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 PHP
有关PHP 中 config.m4 的探索
Aug 26 PHP
PHP大文件分割分片上传实现代码
Dec 09 PHP
thinkPHP事务操作简单案例分析
Oct 17 #PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 #PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 #PHP
TP5框架请求响应参数实例分析
Oct 17 #PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 #PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
Oct 17 #PHP
使用laravel的Eloquent模型如何获取数据库的指定列
Oct 17 #PHP
You might like
网友原创的PHP模板类代码
2008/09/07 PHP
php empty函数 使用说明
2009/08/10 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
2017/11/23 Python
python的sorted用法详解
2019/06/25 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
医务人员自我评价
2014/01/26 职场文书
企业出纳岗位职责
2014/03/12 职场文书
安全生产月演讲稿
2014/05/09 职场文书
四年级数学教学反思
2016/02/16 职场文书