搜尋
首頁PHP 函式庫其它類別庫monolog-日誌PHP類別庫
monolog-日誌PHP類別庫

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

相關文章

php pdo資料庫操作封裝類別程式碼php pdo資料庫操作封裝類別程式碼

25Jul2016

php pdo資料庫操作封裝類別程式碼

PHP QR Code 條碼與二維碼產生類別庫PHP QR Code 條碼與二維碼產生類別庫

25Jul2016

PHP QR Code 條碼與二維碼產生類別庫

整合了前面的PHP資料庫連線類別~~做成一個分頁類別!_PHP教程整合了前面的PHP資料庫連線類別~~做成一個分頁類別!_PHP教程

21Jul2016

整合了前面的PHP資料庫連線類別~~做成一個分頁類別!。不知道學PHP有沒有前途~哎越寫越沒勁?php Classcreatedb//類的開始{ var$db="localhost";//資料庫位址; var$dbname="root";//用戶名; var$ dbpwd="";//密碼; var$

如何使用 DateTime 類別驗證 PHP 中的日期字串?如何使用 DateTime 類別驗證 PHP 中的日期字串?

17Dec2024

使用 PHP 的 DateTime 類別驗證日期字串在使用日期字串時,確保其有效性至關重要。 PHP 的 DateTime 類別...

如何使用單例模式有效管理 PHP 類別中的資料庫連線?如何使用單例模式有效管理 PHP 類別中的資料庫連線?

03Nov2024

在 PHP 類別中使用 PDO 在您的程式碼中,您嘗試擴展 PDO 類別並在 Foo 類別中實例化它。然而,這...

PHP中如何有效地將PDO整合到類別中進行資料庫互動?PHP中如何有效地將PDO整合到類別中進行資料庫互動?

02Nov2024

將 PDO 合併到資料庫互動類別中擴展 PHP 中的 PDO 類別並不是將 PDO 合併到...的最合適方法。

See all articles