Laravel框架的日志使用的是日志插件Monolog,这个应该是目前比较好用的日志插件之一了。
官方给了一些配置日志的选项。说实话,可能是功力尚浅,没看懂。
这就尴尬了。后百度了一下,大概明白了日志的一些大概的情况。
一:配置官方日志插件
1:配置logging.php
文件位置:./config/logging.php
在数组中添加一下配置
php
复制代码
'daily' => [ // 日志驱动 'driver' => 'daily', // 日志存放位置 'path' => storage_path('logs/laravel.log'), // 日志记录登记 'level' => 'debug', // 日志存放天数 'days' => 7, // 日志存放内容格式 'formatter'=>JsonFormatter::class ],
增加使用命名空间:
php
复制代码
use Monolog\Handler\JsonFormatter;
使用log需要添加命名空间
php
复制代码
// 使用日志类 use Illuminate\Support\Facades\Log;
调用这里有两种情况:
1:在./.env文件中增加如下配置:
php
复制代码
LOG_CHANNEL=daily #设置日志驱动
调用:
php
复制代码
// ========================================================== // 调用日志 $array['dsfghj'] = 'aesdrfjk'; $array['dasf'] = 'dzs'; $array['xzcv'] = 'sdgfhj'; Log::info('json', $array);
2:不配置./.env 中的参数的情况下调用
php
复制代码
Log::channel('daily')->info('json', $array);
二:使用官方日志插件,自定义日志方法
我这里自定义的日志方法使用的也是Monolog日志插件
我这里定义了一个控制器,哪里需要使用,哪里实例化调用就可以了。
php
复制代码
<?php namespace App\Http\Controllers\Common; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; use App\Http\Controllers\Controller; use App\Http\Controllers\Common\CommonController; use Monolog\Logger; use Monolog\Handler\StreamHandler; class LogController extends CommonController { public function addLog($json) { // ========================================================= // 更改时区(不更改时区,默认与北京时间有8个小时的时差) date_default_timezone_set('Asia/Shanghai'); // 日志文件名称 $filename = date('Y-m-d', time()) . '.log'; // 日志存放路径 $path = LOG_PATH . $filename; // 文件是否存在 if (!file_exists($path)) { fopen($path, "w"); } // 实例化日志类(此处日志抬头信息,可自定义,便于快速找出你需要的日志) $view_log = new Logger('Region Logs'); // 写入 $view_log->pushHandler(new StreamHandler($path, Logger::INFO)); $view_log->info($json); } }
注意命名空间中的引用
php
复制代码
use Monolog\Logger; use Monolog\Handler\StreamHandler;
其他的就没什么了。
最后啰嗦一句,具体使用哪一个,还是要看自己的需求,官方给的那个玩意,我不太愿意用,也可能是我没有研究明白具体怎么配置,感觉使用起来不是那么灵活。
自定义的话,反正也是利用官方的插件,只是在实现的时候进行了自己的定义,我觉得没什么太大的问题。
有好的建议,请在下方那个输入你的评论。
欢迎访问个人博客 guanchao.site
欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”