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(1)
Oct 09 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
基于PHP常用字符串的总结(待续)
Jun 07 PHP
php 使用file_get_contents读取大文件的方法
Nov 13 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
Jul 29 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
PHP基于Closure类创建匿名函数的方法详解
Aug 17 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 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统计文章排行示例
2014/03/04 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
python获取元素在数组中索引号的方法
2015/07/15 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
python多进程并行代码实例
2019/09/30 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
几个Shell Script面试题
2014/04/18 面试题
药学专业大学生自荐信
2013/09/28 职场文书
药学专业个人自我评价
2013/11/11 职场文书
法学个人求职信范文
2014/01/27 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
工伤事故证明
2014/10/20 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
2015个人半年总结范文
2015/03/09 职场文书
付款证明格式范文
2015/06/19 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书