无为清净楼资源网 Design By www.qnjia.com
修改 bootstrap/app.php 文件
$app->configureMonologUsing(function($monolog) use ($app) { $monolog->pushHandler( (new Monolog\Handler\RotatingFileHandler( '/var/logs/app/laravel', $app->make('config')->get('app.log_max_files', 5) ))->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true)) ); });
添加以后写入日志文件为:
-rw-r--r-- 1 web web 93 Dec 18 15:52 laravel-2017-12-17 -rw-r--r-- 1 web web 279 Dec 18 16:10 laravel-2017-12-18
参考:Laravel 的错误和日志记录
或者
创建app\Providers\LogServiceProvider.php 文件
修改 config\app.php providers 增加
App\Providers\LogServiceProvider::class
然后 App\Providers\LogServiceProvider.php 内容如下
<"htmlcode">namespace App\Providers; use Illuminate\Support\ServiceProvider; use Carbon\Carbon; class LogServiceProvider extends ServiceProvider { protected $log_file; /** * Bootstrap any application services. * @return void */ public function boot() { // } /** * Register any application services. * @return void */ public function register() { $this->load_request_id(); $this->log_configure(); } /** * 生成 request_id * @return void */ protected function load_request_id() { define( 'REQUEST_ID' , config('app.log_prefix').Carbon::now()->timestamp ); } /** * 注册 monolog pushHandler * @return void */ protected function log_configure() { $log_file = $this->getLogFile(); $log_max_files = $this->getLogMaxFiles(); /** * @doc https://d.laravel-china.org/docs/5.4/errors#自定义-Monolog-设置 */ $this->app->configureMonologUsing(function($monolog) use ($log_file , $log_max_files) { $monolog->pushHandler( (new \Monolog\Handler\RotatingFileHandler( $log_file , $log_max_files ))->setFormatter(new \Monolog\Formatter\LineFormatter( "[%datetime%] [".REQUEST_ID."] %channel%.%level_name%: %message% %context% %extra%\n", null, true, true)) ); }); } protected function getLogMaxFiles() { return config('app.log_max_files' , 5); } /** * @return mixed */ protected function getLogFile() { if( is_null( $this->log_file) ) { $this->log_file = rtrim(config('app.log_path') , DIRECTORY_SEPARATOR )."/laravel.log"; } return $this->log_file; } }优化以后
namespace App\Providers; use Illuminate\Support\ServiceProvider; use Monolog\Formatter\LineFormatter; use Monolog\Handler\RotatingFileHandler; use Carbon\Carbon; use Monolog\Logger;; use ReflectionClass; class LogServiceProvider extends ServiceProvider { protected $log_file; /** * Bootstrap any application services. * * @return void */ public function boot() { // } /** * Register any application services. * * @return void */ public function register() { $this->loadRequestId(); /** * 根据日期来分割日志 */ $this->useDailyFiles(); } protected function loadRequestId() { define( 'REQUEST_ID' , config('app.log_prefix').Carbon::now()->timestamp ); } /** * 根据日期来分割日志 */ protected function useDailyFiles() { $handler = $this->getDailyHandler()->setFormatter( $this->getDefaultFormatter() ); $errorHandler = $this->getDailyHandler(Logger::ERROR)->setFormatter( $this->getDefaultFormatter() ); $this->app->configureMonologUsing( function( $monolog) use ( $handler , $errorHandler ) { $monolog->pushHandler( $handler ); $monolog->pushHandler( $errorHandler ); }); } /** * 设置 日志 行格式 * @return LineFormatter */ protected function getDefaultFormatter() { $format = "[%datetime%] [".REQUEST_ID."] %channel%.%level_name%: %message% %context% %extra%\n"; return new LineFormatter( $format , null, true, true); } /** * 根据日志区分 * @return \Monolog\Handler\RotatingFileHandler */ protected function getDailyHandler( $level = Logger::DEBUG) { return new RotatingFileHandler( $this->logPath().$this->logName( $level ) , $this->maxFiles() , $level ); } /** * 日志文件最多个数 * @return int */ protected function maxFiles() { if ($this->app->bound('config')) { return $this->app->make('config')->get('app.log_max_files', 30); } return 0; } /** * 日志文件名称 * @return mixed */ protected function logPath() { $logPath = $this->app->storagePath()."/logs/"; if( $this->app->bound('config')) { $logPath = $this->app->make('config')->get('app.log_path', $logPath ); } return $logPath; } /** * log 完整文件名 * @param int $level * @return string */ protected function logName( $level = Logger::DEBUG ) { return $this->getAppName().'-'.$this->getLevelName( $level ).".log"; } /** * 获取项目app * @return mixed */ protected function getAppName() { return $this->app->make('config')->get('app.name'); } /** * 获取log错误级别名称 * @param $level * @return mixed */ protected function getLevelName( $level ) { $r = new ReflectionClass( Logger::class ); $constants = array_flip( $r->getConstants() ); return $constants[$level]; } }以上这篇自定义Laravel (monolog)日志位置,并增加请求ID的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月19日
2024年11月19日
- 祁露想着你的好》WAV+CUE
- 陈致逸《赴梦之约 游戏主题原声音乐》[FLAC/分轨][159.96MB]
- 贵族音乐《睡眠自然流水声 ASMR白噪音背景音》[320K/MP3][155.72MB]
- 贵族音乐《睡眠自然流水声 ASMR白噪音背景音》[FLAC/分轨][857.58MB]
- 朱昕嵘《琴意绵绵6N纯银SQCD》[WAV+CUE]
- 降央卓玛《草原情6N纯银SQCD》WAV+CUE
- 傲日格乐《黑马琴HQCD》[WAV+CUE]
- 群星.2022-福茂巨星·时空之轮日本唱片志系列DISC3范晓萱-自言自语【福茂】【WAV+CUE】
- 群星.2022-福茂巨星·时空之轮日本唱片志系列DISC4那英-白天不懂夜的黑【福茂】【WAV+CUE】
- 群星.2015-华丽上班族电影原声大碟【大右音乐】【WAV+CUE】
- 陈粒《乌有乡地图》[320K/MP3][21.81MB]
- 陈粒《乌有乡地图》[FLAC/分轨][398.39MB]
- 刘雨昕《2023 XANADU TOUR LIVE原创作品合集》[320K/MP3][26.73MB]
- BEYOND《永远等待25周年限量版》香港盒装版5CD[WAV+CUE]
- 群星《2018年度最佳发烧男声》2CD/DTS[WAV]