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 相关文章推荐
中英文字符串翻转函数
Dec 09 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
Nov 09 PHP
PHP的SQL注入过程分析
Jan 06 PHP
php 获取百度的热词数据的代码
Feb 18 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 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和ACCESS写聊天室(十)
2006/10/09 PHP
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
js实现旋转木马效果
2017/03/17 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python判断windows隐藏文件的方法
2014/03/21 Python
Python的面向对象思想分析
2015/01/14 Python
利用Python如何生成随机密码
2016/04/20 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
美国高端牛仔品牌:Silver Jeans
2019/12/12 全球购物
计算机操作自荐信
2013/12/07 职场文书
企业统计员岗位职责
2013/12/13 职场文书
服装机修工岗位职责
2013/12/26 职场文书
写给保洁员表扬信
2014/01/08 职场文书
合作经营协议书范本
2014/04/17 职场文书
病媒生物防治方案
2014/05/13 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
廉政承诺书2015
2015/04/28 职场文书
合同纠纷调解书
2015/05/20 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
Golang并发工具Singleflight
2022/05/06 Golang