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用数组返回无限分类的列表数据的代码
Aug 08 PHP
兼容性比较好的PHP生成缩略图的代码
Jan 12 PHP
php懒人函数 自动添加数据
Jun 28 PHP
PHP连接MongoDB示例代码
Sep 06 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php之Smarty模板使用方法示例详解
Jul 08 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
php实现面包屑导航例子分享
Dec 19 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
js简单抽奖代码
2015/01/16 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
require.js的用法详解
2015/10/20 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
js初始化验证实例详解
2016/11/26 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
高中毕业生个人自我鉴定
2013/11/24 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
大气污染防治方案
2014/05/19 职场文书
企业趣味活动方案
2014/08/21 职场文书
大学生学习面向未来的赶考思想汇报
2014/09/12 职场文书
高中运动会广播稿
2014/09/16 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
用CSS3画一个爱心
2021/04/27 HTML / CSS
关于Vue中的options选项
2022/03/22 Vue.js
使用refresh_token实现无感刷新页面
2022/04/26 Javascript