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文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
测试您的 PHP 水平的题目
May 30 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
php function用法如何递归及return和echo区别
Mar 07 PHP
PHP中数组的分组排序实例
Jun 01 PHP
php socket客户端及服务器端应用实例
Jul 04 PHP
PHP中的Streams详细介绍
Nov 12 PHP
PHP之密码加密的几种方式
Jul 29 PHP
php文件扩展名判断及获取文件扩展名的N种方法
Sep 12 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 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缓存的详解
2013/05/15 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
python中反射用法实例
2015/03/27 Python
Python如何判断数独是否合法
2016/09/08 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
Java基础知识面试题
2014/03/25 面试题
英语专业职业生涯规划范文
2014/03/05 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
学校政风行风整改方案
2014/10/25 职场文书
户外亲子活动总结
2015/05/08 职场文书