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
本筆記參考:
1. https://www.itread01.com/content/1550370095.html
2. https://www.jianshu.com/p/b8e0ef4ef249
3. https://stackoverflow.com/questions/39030725/laravel-5-2-get-current-line-of-log-event