- log4phpを試した備忘録です
- Apache log4php - Welcome - Apache log4php の[Download]より apache-log4php-2.3.0-src.zip をダウンロード
- 解凍先は任意、今回は C:\DATA01\TempDel の下に解凍
- C:\DATA01\TempDel\log4php_config.xmlを作成
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://logging.apache.org/log4php/"> <appender name="appenderfile" class="LoggerAppenderFile"> <param name="file" value="C:\DATA01\TempDel\application.log" /> <param name="append" value="true" /> <layout class="LoggerLayoutPattern"> <param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" /> </layout> </appender> <root> <appender_ref ref="appenderfile" /> </root> </configuration> |
- C:\DATA01\TempDel\log4php_test.phpを作成
<?php // ログの時間を日本時間にするため date_default_timezone_set("Asia/Tokyo"); require_once(dirname(__FILE__) . "/apache-log4php-2.3.0/src/main/php/Logger.php"); // 設定ファイルの読み込み Logger::configure(dirname(__FILE__) . "/log4php_config.xml"); // ロガー名:任意 $logger = Logger::getLogger("myLogger"); // 以下ログの出力 $logger->debug("メッセージ debug"); $logger->info("メッセージ info"); $logger->warn("メッセージ warning"); $logger->error("メッセージ error"); $logger->fatal("メッセージ fatal"); ?> |
- ブラウザからlog4php_test.phpにアクセスすると、C:\DATA01\TempDel\application.log に以下のようにログが出力される
2024-05-10 20:11:04.171 myLogger DEBUG C:\DATA01\TempDel\log4php_test.php(14) メッセージ debug 2024-05-10 20:11:04.173 myLogger INFO C:\DATA01\TempDel\log4php_test.php(15) メッセージ info 2024-05-10 20:11:04.173 myLogger WARN C:\DATA01\TempDel\log4php_test.php(16) メッセージ warning 2024-05-10 20:11:04.173 myLogger ERROR C:\DATA01\TempDel\log4php_test.php(17) メッセージ error 2024-05-10 20:11:04.173 myLogger FATAL C:\DATA01\TempDel\log4php_test.php(18) メッセージ fatal |
- サイズでローテーションさせる場合は、log4php_config.xmlを以下のように記載
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://logging.apache.org/log4php/"> <appender name="rollingFile" class="LoggerAppenderRollingFile"> <param name="file" value="C:\DATA01\TempDel\application.log" /> <param name="append" value="true" /> <param name="maxFileSize" value="10MB" /> <param name="maxBackupIndex" value="10" /> <param name="compress" value="false" /> <layout class="LoggerLayoutPattern"> <param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" /> </layout> </appender> <root> <appender_ref ref="rollingFile" /> </root> </configuration> |
- 日付でローテーションさせる場合は、log4php_config.xmlを以下のように記載
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://logging.apache.org/log4php/"> <appender name="dailyFile" class="LoggerAppenderDailyFile"> <param name="file" value="C:\DATA01\TempDel\application_%s.log" /> <param name="append" value="true" /> <param name="datePattern" value="Y-m-d" /> <layout class="LoggerLayoutPattern"> <param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" /> </layout> </appender> <root> <appender_ref ref="dailyFile" /> </root> </configuration> |
- application_2024-05-10.log というファイル名でログが出力される
日付のフォーマットは datePattern で指定できる
月ごとにする場合は Y-m など - 日付でログ出力しつつ、ブラウザにも表示する場合は、log4php_config.xmlを以下のように記載
<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://logging.apache.org/log4php/"> <appender name="dailyFile" class="LoggerAppenderDailyFile"> <param name="file" value="C:\DATA01\TempDel\application_%s.log" /> <param name="append" value="true" /> <param name="datePattern" value="Y-m-d" /> <layout class="LoggerLayoutPattern"> <param name="conversionPattern" value="%date{Y-m-d H:i:s.u} %logger %-5level %sessionid %file(%line) %msg%n" /> </layout> </appender> <appender name="echo" class="LoggerAppenderEcho"> <param name="htmlLineBreaks" value="true" /> <layout class="LoggerLayoutSimple" /> </appender> <root> <appender_ref ref="dailyFile" /> <appender_ref ref="echo" /> </root> </configuration> |
- Appenderの種類は Apache log4php - Appenders - Apache log4php に記載されている
0 件のコメント:
コメントを投稿