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新手上路(十二)
Oct 09 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 PHP
Zend Guard使用指南及问题处理
Jan 07 PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
ThinkPHP5框架缓存查询操作分析
May 30 PHP
PHP耦合设计模式实例分析
Aug 08 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获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
web 页面分页打印的实现
2009/06/22 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
python中正则表达式 re.findall 用法
2018/10/23 Python
Python hashlib模块实例使用详解
2019/12/24 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
Python 实现一个计时器
2020/07/28 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
体育之星事迹材料
2014/05/11 职场文书
环保建议书300字
2014/05/14 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
幼师辞职信范文
2015/02/27 职场文书
出国留学单位推荐信
2015/03/26 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
《比尾巴》教学反思
2016/02/24 职场文书