Laravel 如何寫 Log

2020/11/10閱讀時間約 2 分鐘
Laravel的日誌系統底層是Monolog,設定在config\logging.php裡面,預設路徑是在storage\logs\laravel.log,也可以更改成喜歡的路徑。
Log Channel:
Log有很多Channel可以選,如下圖:
single就是把log都寫在同一份,daily表示每天產生一份log,其中的days表示要保存最近幾天內的logs,以這個例子而言,超過14天的都會被自動刪除。

Log Level:
LOG_LEVEL會把大於等於目前level的都print出來,log級別順序由上到下為:
emergency、alert、critical、error、warning、notice、info 、debug
由於預設log level為debug,所以所有級別的log都會print出來。

Laravel Framework version: 8.13.0
做個測試,在.env檔案中的LOG_CHANNEL使用stack,可以把channel合併起來,例如像是我把single跟daily合起來,指定寫在不同file name。
可以發現log紀錄的時間慢了8個小時,要修改config\app.php中的timezone:
改為Asia/Taipei
之後就發現對了:
可是log中都沒有記錄檔名跟行數,這樣以後查log會很麻煩,survey了一下,可以把程式碼改成這樣:
但是這樣寫如果日後要改log format會累死,因此可以改成helper function。
可參考我這篇: Laravel 建立 Helper function
為什麼會看到廣告
20會員
161內容數
留言0
查看全部
發表第一個留言支持創作者!