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 相关文章推荐
一个颜色轮换的简单例子
Oct 09 PHP
PHP教程 预定义变量
Oct 23 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP的拦截器实例分析
Nov 03 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
PHP实现权限管理功能示例
Sep 22 PHP
基于swoole实现多人聊天室
Jun 14 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
如何在PHP环境中使用ProtoBuf数据格式
Jun 19 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/04/24 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
Python实现Linux命令xxd -i功能
2016/03/06 Python
python select.select模块通信全过程解析
2017/09/20 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
django允许外部访问的实例讲解
2018/05/14 Python
python 检查文件mime类型的方法
2018/12/08 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
python基于event实现线程间通信控制
2020/01/13 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
Python requests接口测试实现代码
2020/09/08 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
后勤部长岗位职责
2013/12/14 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技