現在,要再回到laradock來。不過同樣的,Lavavel儲存紀錄檔的地方也是在storage/logs
。這裡會儲存使用Log::info()
所寫下的紀錄。
docker-compose exec workspace bash -c "tail -f storage/logs/最新的log"
如果使用Linux的話,也可以直接:
tail -f storage/logs/最新的log
當然你也可以直接把紀錄檔,用文字編輯器開啟。不過上述會這麼做,是因為如次可以更簡單的在開發時除錯。有時候,Laravel錯誤訊息頁面提供的訊息並非一目瞭然,會需要用到printf
方式除錯(我假設...你不動gdb
,但用過最基本的除錯手法...)。在這裡,使用一系列Log::
的方法,其中,Log::debug()
就對應除錯資訊。這和我曾經寫過的瀏覽器console.log()外的一些其他用法 有些像。
前幾天,在BlogPost
建立新文章、更新文章和刪除文章時,使用Log::info()
做了紀錄。Laravel從緊急到普通等級還提供以下方式:
Log::emergency($message);
Log::alert($message);
Log::critical($message);
Log::error($message);
Log::warning($message);
Log::notice($message);
Log::info($message);
Log::debug($message);
我有些意外在RFC 5424有所規範。
我常用的只有info
、debug
、warning
、alert
。
在好好看看Laravel關於Logging的文件,可以編輯config/logging.php
修改設定。為了簡化每次都要去檢查最新的是哪個紀錄檔,可以將stack
頻道改成下面這樣:
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily', 'single'],
'ignore_exceptions' => false,
],
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
],
'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug',
'days' => 14,
],
預設上,還有多種策略可以選擇:
策略(channel) | 說明 |
---|---|
stack | A wrapper to facilitate creating "multi-channel" channels |
single | A single file or path based logger channel (StreamHandler) |
daily | A RotatingFileHandler based Monolog driver which rotates daily |
slack | A SlackWebhookHandler based Monolog driver |
papertrail | A SyslogUdpHandler based Monolog driver |
syslog | A SyslogHandler based Monolog driver |
errorlog | A ErrorLogHandler based Monolog driver |
monolog | A Monolog factory driver that may use any supported Monolog handler |
custom | A driver that calls a specified factory to create a channel |
懶的翻譯了...
先夠除錯就好www