PHP PSR 3 日誌介面規範

2021-09-19 13:22:09 字數 2079 閱讀 2100

本文制定了日誌類庫的通用介面規範。

本規範的主要目的,是為了讓日誌類庫以簡單通用的方式,通過接收乙個psr\log\loggerinte***ce物件,來記錄日誌資訊。

框架以及cms內容管理系統如有需要,可以對此介面進行擴充套件,但需遵循本規範,

這才能保證在使用第三方的類庫檔案時,日誌介面仍能正常對接。

本文中的實現者指的是實現了loggerinte***ce介面的類庫或者框架,反過來講,他們就是loggerinte***ce使用者

規範說明

其中佔位符必須與上下文陣列中的鍵名保持一致。

佔位符的名稱必須由乙個左花括號包含。但花括號與名稱之間一定不能有空格符。

佔位符的名稱應該只由a-za-z,0-9、下劃線_、以及英文的句號.組成,其它字元作為將來佔位符規範的保留。

實現者可以通過對佔位符採用不同的轉義和轉換策略,來生成最終的日誌。

而使用者在不知道上下文的前提下,不該提前轉義佔位符。

以下是乙個佔位符使用的例子:

/**

* 用上下文資訊替換記錄資訊中的佔位符

*/function interpolate($message, array $context = array())

'] = $val;

}// 替換記錄資訊中的佔位符,最後返回修改後的記錄資訊。

return strtr($message, $replace);

}// 含有帶花括號佔位符的記錄資訊。

$message = "user created";

// 帶有替換資訊的上下文陣列,鍵名為佔位符名稱,鍵值為替換值。

$context = array('username' => 'bolivar');

// 輸出 "username bolivar created"

echo interpolate($message, $context);

上述的介面、類和相關的異常類,以及一系列的實現檢測檔案,都包含在 psr/log 檔案包中。

psr\log\loggerinte***ce

<?php

namespace psr\log;

/** * 日誌記錄例項

* * 日誌資訊變數 —— message, **必須**是乙個字串或是實現了 __tostring() 方法的物件。

* * 日誌資訊變數中**可以**包含格式如 「」 (代表foo) 的佔位符,

* 它將會由上下文陣列中鍵名為 "foo" 的鍵值替代。

* * 上下文陣列可以攜帶任意的資料,唯一的限制是,當它攜帶的是乙個 exception 物件時,它的鍵名 必須 是 "exception"。

* * 詳情可參閱:

*/inte***ce loggerinte***ce

psr\log\loggerawareinte***ce

<?php

namespace psr\log;

/** * logger-aware 定義例項

*/inte***ce loggerawareinte***ce

psr\log\loglevel

<?php

namespace psr\log;

/** * 日誌等級常量定義

*/class loglevel

**github(pizzaliu)

PHP PSR 3 日誌介面規範 中文版

本文制定了日誌類庫的通用介面規範。本規範的主要目的,是為了讓日誌類庫以簡單通用的方式,通過接收乙個psr log loggerinte ce物件,來記錄日誌資訊。框架以及cms內容管理系統如有需要,可以對此介面進行擴充套件,但需遵循本規範,這才能保證在使用第三方的類庫檔案時,日誌介面仍能正常對接。本...

PSR 3 日誌介面規範

用上下文資訊替換記錄資訊中的佔位符 function interpolate message,array context array val 替換記錄資訊中的佔位符,最後返回修改後的記錄資訊。return strtr message,replace 含有帶花括號佔位符的記錄資訊。message us...

PSR 3 日誌介面規範

1.規範說明 1.1 基本規範 loggerinte ce 介面對外定義了八個方法,分別用來記錄 rfc 5424 中定義的八個等級的日誌 debug info notice warning error critical alert 以及 emergency 第九個方法 log,其第乙個引數為記錄的...