今天应客户要求,需要对项目日志进行指定位置保存,查看源码时,发现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;        });    }