Blink 提供了一個構建在 Monolog 日志庫之上、兼容 PSR-3 日志標準的日志服務組件。通過日志服務,我們可以輕松的把各種類型的消息記錄到諸如文件、 數據庫、郵件等媒介中。
為了記錄日志消息,我們首先需要配置日志服務,下面是 Blink 的 seed 項目提供的默認日志配置:
'log' => [
'class' => 'blink\log\Logger',
'targets' => [
'file' => [
'class' => 'blink\log\StreamTarget',
'enabled' => true,
'stream' => 'php://stderr',
'level' => 'info',
]
],
],
在這個例子中,我們定義了一個叫做 file
的媒介,目的是將所有消息級別小于或等于 INFO 的消息寫入到 stderr
中:
另外,獲取日志服務和寫日志也是很方便的,實例如下:
// 獲取日志服務的實例
$log = app('log');
// emergency 日志類型,系統(tǒng)不可用
$log->emergency('my message');
// alert 日志類型,必要的措施必須馬上采取
$log->alert('my message');
// critical 日志類型,危險條件觸發(fā)
$log->critical('my message');
// error 日志類型,運行時錯誤
$log->error('my message');
// warning 日志類型,警告
$log->warning('my message');
// notice 日志類型,通常且值得注意的事件
$log->notice('my message');
// info 日志類型,記錄感興趣的事件
$log->info('my message');
// debug 日志類型,記錄詳細的調試信息
$log->debug('my message');
Blink 中,所有的 PHP 錯誤都會自動轉換成 blink\core\ErrorException
異常,通過這個特性,我們可以用 try ... catch 來捕獲 PHP 錯誤。
Blink 提供由 blink\core\ErrorHandler
類實現的 errorHandler
服務來處理 PHP 異常。默認情況下,errorHandler
會把所有的異常上報給 log
服務,我們也可以實現自己的 errorHandler
,采用不同的方式來處理這些異常,比如上報給 Sentry。
更多建議: