2013-02-16 67 views
0

我在基於PSR-3標準(以及隨其提供的接口/類 - https://github.com/php-fig/log)實施日誌記錄系統時遇到問題。日誌行格式化

我已經創建了一些類來擴展PSR-3:記錄器,它使用適配器來做實際的記錄(記錄器類存儲適配器實例並調用其中的log()方法),並且我來到文件適配器(寫入日誌消息的適配器到文件(s)),我正在尋找一些方法來實現自定義日誌行格式。我的意思是我可以登錄郵件作爲

[01/01/2013 12:00:00] NOTICE: Log message content\n

以及

user: Log message content (NOTICE) ~ 01-01-2013

(完全自定義的順序和內容)

而且,我想創造單獨的類那。

有沒有辦法以非常容易的方式做到這一點,所以其他人(即使是低技能的phpers)也不會有改變這個問題的問題?

+0

無論您如何寫「get-at-at-able」,人們都會找到辦法將其搞砸。擔心低技能的編碼人員閱讀你的代碼是浪費時間。 – 2013-02-16 21:51:04

+0

好吧,所以我正在考慮像元素數組(像key => value)和消息格式,如'[{date}] {level}:{message} \ n'。消息字符串會替換「{message}」標記,日誌級別爲「{level}」標記,其餘部分將自定義。也爲動態值(如日期),我將不得不檢查值是否可調用。你認爲這是個好主意嗎? – 2013-02-16 21:59:54

回答

0

也許是主流,但你看着Monolog

您可以實現HandlerInterface,而不是LoggerInterface。格式化可以通過Monolog使用你的模式來解決。

該解決方案也更好,因爲您可以在Monolog中使用ONE Logger和許多處理程序。

有一個缺點/好處(你決定):你必須在處理程序中實現你的級別日誌記錄,這可能有點難看。