2024年5月11日土曜日

log4php

  • 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>

0 件のコメント:

コメントを投稿