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通用检测函数集合
Feb 08 PHP
PHP 登录记住密码实现思路
May 07 PHP
解析使用ThinkPHP应该掌握的调试手段
Jun 20 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
Jun 25 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
Jun 19 PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 PHP
php获取当月最后一天函数分享
Feb 02 PHP
php实现简单的MVC框架实例
Sep 23 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
php查找字符串中第一个非0的位置截取
Feb 27 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 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
基于mysql的bbs设计(二)
2006/10/09 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
js右键菜单效果代码
2007/07/21 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
初中政治教师教学反思
2016/02/23 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
Java设计模式中的命令模式
2022/04/28 Java/Android
MySQL常用慢查询分析工具详解
2022/08/14 MySQL