Monolog是php下比較全又容易擴充的記錄日誌類別庫。目前有包括Symfony 、Laravel、 CakePHP等諸多知名php框架都內建了Monolog。 Monolog可以把你的日誌送到文件,sockets,收件箱,資料庫和各種web services。
Monolog遵循PSR3的介面規範,可以很輕易的替換成其他遵循相同規範的日誌類別庫。 Monolog具有良好的擴充性,透過Handler、Formatter和Processor這幾個接口,可以對Monolog類別庫進行各種擴充和自訂。
基本用法
<?php use Monolog\Logger; use Monolog\Handler\StreamHandler; // 创建日志频道 $log = new Logger('name'); $log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); // 添加日志记录 $log->addWarning('Foo'); $log->addError('Bar');
核心概念
每一個Logger實例都包含一個頻道名稱(channel)和handler的堆疊。當你新增一筆記錄時,記錄會依序通過handler堆疊的處理。而每個handler也可以決定是否把記錄傳遞到下一個堆疊裡的下一個handler。
透過handler,我們可以實作一些複雜的日誌操作。例如我們把StreamHandler放在堆疊的最下面,那麼所有的日誌記錄最終都會寫到硬碟檔案裡。同時我們把MailHandler放在堆疊的最上面,透過設定日誌等級把錯誤日誌透過郵件發送出去。 Handler裡有個$bubble屬性,這個屬性定義了handler是否攔截記錄不讓它流到下一個handler。所以如果我們把MailHandler的$bubble參數設定為false,則出現錯誤日誌時,日誌會透過MailHandler傳送出去,而不會經過StreamHandler寫到硬碟上。
Logger可以建立多個,每個都可以定義自己的頻道名稱和handler堆疊。 handler可以在多個Logger中共享。頻道名稱會反映在日誌裡,方便我們檢視和篩選日誌記錄。
如果沒有指定日誌格式(Formatter),Handler會使用預設的Formatter。
日誌的等級不能自訂,目前使用的是RFC 5424裡定義的8個等級:debug、info、notice、warning、error、critical、alert和emergency。如果對日誌記錄有其他的需求,可以透過Processo對日誌記錄新增內容。
日誌等級
DEBUG (100): 詳細的debug資訊。
INFO (200): 關鍵事件。
NOTICE (250): 普通但是重要的事件。
WARNING (300): 出現非錯誤的例外。
ERROR (400): 執行階段錯誤,但不需要立刻處理。
CRITICA (500): 嚴重錯誤。
EMERGENCY (600): 系統不可用。
本站所有資源皆由網友貢獻或各大下載網站轉載。請自行檢查軟體的完整性!本站所有資源僅供學習參考。請不要將它們用於商業目的。否則,一切後果都由您負責!如有侵權,請聯絡我們刪除。聯絡方式:admin@php.cn
相關文章
21Jul2016
整合了前面的PHP資料庫連線類別~~做成一個分頁類別!。不知道學PHP有沒有前途~哎越寫越沒勁?php Classcreatedb//類的開始{ var$db="localhost";//資料庫位址; var$dbname="root";//用戶名; var$ dbpwd="";//密碼; var$
17Dec2024
使用 PHP 的 DateTime 類別驗證日期字串在使用日期字串時,確保其有效性至關重要。 PHP 的 DateTime 類別...