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 cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
Oct 17 PHP
解析php中heredoc的使用方法
Jun 17 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
php制作动态随机验证码
Feb 12 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
PHP实现事件机制实例分析
Jun 26 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
PHP反射基础知识回顾
Sep 10 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个人网站架设连环讲(四)
2006/10/09 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
php接口隔离原则实例分析
2019/11/11 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
JavaScript Prototype对象
2009/01/07 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Python文件及目录操作实例详解
2015/06/04 Python
详解python 发送邮件实例代码
2016/12/22 Python
基于python socketserver框架全面解析
2017/09/21 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
贝斯特韦斯特酒店集团官网:Best Western
2019/01/03 全球购物
公司培训欢迎词
2014/01/10 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
党性分析自查总结
2014/10/14 职场文书
2014年度考核工作总结
2014/12/24 职场文书
人事专员岗位职责
2015/02/03 职场文书
爱晚亭导游词
2015/02/09 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书