- 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 件のコメント:
コメントを投稿