2016-04-01 218 views
1

我用下面的改變我的日誌路徑:Laravel更改日誌路徑

\Log::useDailyFiles(...) 

但我仍然得到/storage/logs/日誌條目。我怎樣才能只使用我的日誌路徑?

回答

3

當引導ConfigureLogging類時,Laravel已經註冊了一個記錄器的實例。因此,當您使用Log::useDailyFiles()時,您只需添加一個額外的日誌處理程序,這就是爲什麼您還可以在標準storage/logs/laravel.log中獲得日誌條目的原因。

要覆蓋默認日誌處理程序,Laravel提供了應用程序實例上可用的configureMonologUsing方法。因此,在您bootstrap/app.php文件只是return $app;語句之前,添加以下內容:

$app->configureMonologUsing(function($monolog) use ($app) { 
    $monolog->pushHandler(
     (new Monolog\Handler\RotatingFileHandler(
      // Set the log path 
      '/custom/path/to/custom.log', 
      // Set the number of daily files you want to keep 
      $app->make('config')->get('app.log_max_files', 5) 
     ))->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true)) 
    ); 
}); 

傳遞給RotatingFileHandler,嘗試從config/app.php得到log_max_files配置值,以確定它應該有多少,每天的日誌文件保存第二個參數,如果沒有找到它,則默認爲5。如果您想保留無限數量的每日日誌文件,只需傳遞0即可。


您可以在Laravel Documentation中閱讀更多關於日誌配置的信息。

+0

非常感謝,我試了一下,但是我得到了致命錯誤:調用未定義的方法Illuminate \ Foundation \ Application,爲什麼?我不知道 –

+0

您使用的是Laravel版本?另外請發佈整個錯誤堆棧跟蹤,其中應包括錯誤觸發的文件和行號,以及指定該行上的代碼段。我以前使用過這個代碼,它工作得很好。 – Bogdan

+0

它適合我!謝謝 – juanpscotto