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入门速成(2)
Oct 09 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
解析关于wamp启动是80端口被占用的问题
Jun 21 PHP
PHP实现图片旋转效果实例代码
Oct 01 PHP
php中执行系统命令的方法
Mar 21 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
详解PHP实现执行定时任务
Dec 21 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
php单链表实现代码分享
Jul 04 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
Laravel Reponse响应客户端示例详解
Sep 03 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
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
Python类的基础入门知识
2008/11/24 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
python中的字典操作及字典函数
2018/01/03 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
对python函数签名的方法详解
2019/01/22 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
Python 串口通信的实现
2020/09/29 Python
专业毕业生个性的自我评价
2013/10/03 职场文书
音乐表演专业毕业生求职信
2013/10/14 职场文书
基层干部十八大感言
2014/01/19 职场文书
运动会入场口号
2014/06/07 职场文书
倡议书作文
2015/01/19 职场文书