Laravel 中自定義日誌目錄

我是王老改發表於2017-12-16

新人報單!!!
這是我工作用遇到的一個問題,如何把日誌寫入到指定目錄檔案
希望對各位小夥伴有幫助哈!
那麼問題來了,比如我在寫job的時候,使用 Log::info() 會讓日誌全部記錄在 storage/logs/laravel.log 檔案裡,查詢起來比較麻煩。那麼我可不可以單獨記錄在一個日誌檔案裡呢?

laravel文件裡沒有寫,於是我去翻Laravel的原始碼,結果還真給我找到了。只需在你的程式碼中加入

Log::useDailyFiles(storagepath('logs/job/error.log'));
這樣日誌就會單獨記錄在 logs/job/error.log 中,如:

file

這是按每日記錄的,想要單檔案記錄日誌可以使用
Log::useFiles(storage_path('logs/job/error.log')); 。

到這裡,日誌會記錄兩份,
1.是自帶的日誌檔案內容,
2.是自己指定的日誌檔案內容。

那麼,只想在指定的檔案裡記錄要腫麼辦呢?
只需在 Log::useDailyFiles(storage_path('logs/job/error.log')) 之前加上,
$monolog = Log::getMonolog();
$monolog->popHandler();

例如:
file
這樣,該類中的日誌就是隻記錄在你指定的檔案中。

如果有大神理解更透徹的,希望能把更詳細的釋出上出來。嘿嘿。。。

相關文章