首先引入logger.php檔案。 log4php可以透過引入logger.php來完成自動載入的過程。檔案位置如下:
日誌記錄器本身沒有定義日誌的輸出目的地和格式,所以我們通常需要引入log4php後要先引入設定檔(下面會詳細介紹)。日誌記錄器是一個元件,我們透過日誌記錄器來記錄日誌資訊。引入設定檔後透過getLogger獲得一個將日誌記錄器實體。然後可以透過列印方法列印出日誌資訊。列印方法通常包括info、warn、error、debug等。
include('Logger.php'); Logger::Configure(COMMON_PATH . 'Conf/log.php');//引入配置文件 $logger = Logger::getLogger("main"); //生成日志实例 $logger->info("This is an informational message."); //在规定好的输出目的地用规定好的输出格式显示信息消息
log4php設定檔支援 XML、PHP、Properties (INI)等格式。同樣支援可編程配置,即透過函數來改變配置。
class MyConfigurator implements LoggerConfigurator { public function configure(LoggerHierarchy $hierarchy, $input = null) { // Create an appender which logs to file $appFile = new LoggerAppenderFile('foo'); $appFile->setFile('D:/Temp/log.txt'); $appFile->setAppend(true); $appFile->setThreshold('all'); $appFile->activateOptions(); // Use a different layout for the next appender $layout = new LoggerLayoutPattern(); $layout->setConversionPattern("%date %logger %msg%newline"); $layout->activateOptions(); // Create an appender which echoes log events, using a custom layout // and with the threshold set to INFO $appEcho = new LoggerAppenderEcho('bar'); $appEcho->setLayout($layout); $appEcho->setThreshold('info'); $appEcho->activateOptions(); // Add both appenders to the root logger $root = $hierarchy->getRootLogger(); $root->addAppender($appFile); $root->addAppender($appEcho); } }
Logger::Configure(COMMON_PATH . 'Conf/log.php');
專案中由這行程式碼引入配置。配置中一般包含以下內容:
1.日誌資訊的優先順序;2. 日誌資訊的輸出目的地;3. 日誌資訊的輸出格式。
日誌資訊的優先權從高到低有ERROR、WARN、INFO、DEBUG。
以下是常用四種等級的用法:
DEBUG Level指出細粒度資訊事件對偵錯應用程式是非常有幫助的。
INFO level表明 訊息在粗粒度等級上突出強調應用程式的運行過程。
WARN level表示會出現潛在錯誤的情況。
ERROR level指出雖然發生錯誤事件,但仍不影響系統的繼續運作。
程式只能顯示比目前設定的等級優先順序更低的資訊。例如目前程式設定level為DEBUG,那就是說程式中所有資訊都能顯示出來。如果目前程式level為info,那麼只有info,warn,error三中日誌資訊可以展示。
return array( 'rootLogger' => array( 'appenders' => array( 'myConsoleAppender', ), 'level' => 'DEBUG' ), )
和優先權一樣,輸出位址同樣可以在設定檔中作出配置,並且可以根據不同的日誌類別設定不同的輸出目的地。例:
'loginFileAppender' => [ 'class' => 'LoggerAppenderDailyFile', 'layout' => [ 'class' => 'LoggerLayoutPattern', 'params' => [ 'conversionPattern' => '%date [%logger] %message%newline', ], ], 'params' => [ 'file' => './log/login/login_%s.log', 'datePattern' => 'Y_m_d', ] ],
log4php支援12種輸出目的地,分別為:
LoggerAppenderConsole 以php://stdout為輸出目的地
LoggerAppenderFile 以檔案為輸出目的地
LoggerAppenderDailyFile 以檔案為目的地,每日輸出一個檔案
#LoggerAppenderDb 以資料庫為輸出目的地
LoggerAppenderEcho 在執行檔案尾輸出
例如:
'conversionPattern' => '%date [%logger] %message%newline'
以上是log4php的配置及使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!