lumen cli日志和普通日志分开存储
lumen cli日志和普通日志分开存储
直接上代码
1.自定义LogServiceProvider
<?php
namespace App\Providers;
use Illuminate\Http\Request;
use Illuminate\Support\ServiceProvider;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\RotatingFileHandler;
class LogServiceProvider extends ServiceProvider
{
public function __construct($app)
{
parent::__construct($app);
}
public function boot(Request $request){
$addr = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
// 添加的请求标识
$requestId = $request['request_id'] = md5(time() . rand(1 , 1000));
$file = storage_path("logs/log.log");
if(app()->runningInConsole()){
$file = storage_path("logs/cli-log.log");
}
//输出指定格式
$outInput = "[%datetime%][ip:$addr][requestId:{$requestId}][Level:%level_name%][Message:%message% %context% %extra%]\n";
$handlers[] = (new RotatingFileHandler($file, 5))
->setFormatter(new LineFormatter($outInput, 'Y-m-d H:i:s' , true, true));
$this->app['log']->setHandlers($handlers);
}
}
2.引入LogServiceProvider
//在bootstrap\app.php中引入
$app->register(App\Providers\LogServiceProvider::class);
本作品采用《CC 协议》,转载必须注明作者和本文链接