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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
浅谈discuz密码加密的方式
May 22 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
php操纵mysqli数据库的实现方法
Sep 18 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 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新手上路(二)
2006/10/09 PHP
中英文字符串翻转函数
2008/12/09 PHP
php将会员数据导入到ucenter的代码
2010/07/18 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
Vue核心概念Getter的使用方法
2019/01/18 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
Python sorted函数详解(高级篇)
2018/09/18 Python
想学python 这5本书籍你必看!
2018/12/11 Python
详解python解压压缩包的五种方法
2019/07/05 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
Marc Jacobs彩妆官网:Marc Jacobs Beauty
2017/07/03 全球购物
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
光学与应用专业毕业生求职信
2014/09/01 职场文书
慰问信模板
2015/02/14 职场文书
如何用python反转图片,视频
2021/04/24 Python
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
5行Python代码实现一键批量扣图
2021/06/29 Python
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js