今天应客户要求,需要对项目日志进行指定位置保存,查看源码时,发现logpservicerovider已经被写死在框架中了。显然直接修改logserviceprovider是不好的。于是研究了一大早上,最后经公司大神指点,写在appserviceprovider里的register()方法中重新定义日志处理器,搞定。
public function register() { // if ($this->app->environment() == 'local') { $this->app->register(\Reliese\Coders\CodersServiceProvider::class); }/***添加日志处理器*/ $app = $this->app; $app->configureMonologUsing(function (Logger $logger) {// $formatter = new LineFormatter(null, null, true, true);// $name = 'dms.debug.log';// $handler = (new StreamHandler(config('app.log_path') . $name, Logger::DEBUG))->setFormatter($formatter);// $logger->pushHandler($handler); $formatter = new LineFormatter(null, null, true, true); $name = 'dms.info.log'; $handler = (new StreamHandler(config('app.log_path') . $name, Logger::INFO))->setFormatter($formatter); $logger->pushHandler($handler); $formatter = new LineFormatter(null, null, true, true); $name = 'dms.error.log'; $handler = (new StreamHandler(config('app.log_path') . $name, Logger::WARNING))->setFormatter($formatter); $logger->pushHandler($handler); return $logger; }); }