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 相关文章推荐
第1次亲密接触PHP5(2)
Oct 09 PHP
PHP 定界符 使用技巧
Jun 14 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 PHP
php中配置文件操作 如config.php文件的读取修改等操作
Jul 07 PHP
一个PHP并发访问实例代码
Sep 06 PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
PHP实现文字写入图片功能
Feb 18 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 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
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
PHP常用技巧汇总
2016/03/04 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
关于Javascript 的 prototype问题。
2007/01/03 Javascript
javascript一点特殊用法
2008/05/28 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
wxPython学习之主框架实例
2014/09/28 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
python实现中文分词FMM算法实例
2015/07/10 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
大学生实习鉴定评语
2014/04/25 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
学校个人对照检查材料
2014/08/26 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
golang json数组拼接的实例
2021/04/28 Golang
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS