JavaアプリケーションのログをRSSで配信 - Log4rss

    杉山貴章  [2005/06/13]

    ThoughtWorks Open SourceのLog4rssプロジェクトは、JavaアプリケーションのログをRSS(RDF Site Summery)形式で記録するためのライブラリであるLog4rssを公開している。RSSはヘッドライン情報を記述するためのXMLフォーマットの一種で、コンテンツの最新情報を配信するために広く利用されている。これらのRSSはRSSリーダによって閲覧することができる。ユーザはRSSリーダに任意のサイトで提供されるRSSフィードを登録しておくことで、常にそのサイトの最新の情報を受け取ることが可能となる。

    Log4rssを使用すれば、Javaアプリケーションの実行ログをRSS形式で出力することができる。したがって出力されるファイルをRSSリーダに登録しておくことで、アプリケーションの状態に変化があった場合即座にそれを知ることができる。

    Log4rssはそれ単体がログ記録の機能を持つのではなく、Apacheプロジェクトによって提供されているLog4Jを利用する際のAppenderとして動作する。Log4JではLoggerがログを記録し、それを指定されたAppenderに対して出力する。Appenderは指定されたフォーマットでログを出力する機能を持つ。すなわちLog4Jを使用する際にAppenderとしてLog4rssを指定するだけで、ログをRSS形式で出力することができる。これらの指定は設定ファイルで行うため、プログラムそのものはLog4Jを使用する場合と同じで構わない。

    設定ファイルは、例えばXML形式でリスト1のように記述する。

    リスト1 : 設定ファイルの記述例

    <?xml version="1.0" encoding="EUC-JP" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
       <appender name="rssappender" class="org.apache.log4j.log4rss.RssAppender">
          <param name="File" value="MyRssFeed.xml" />
          <layout class="org.apache.log4j.PatternLayout">
             <param name="ConversionPattern" value="%d %-5p %c - %m [%t] (%F:%L)%n"/>
          </layout>
       </appender>
       <root>
          <level value="debug" />
          <appender-ref ref="rssappender" />
       </root>
    </log4j:configuration>

    使用するAppenderとしてLog4rssで提供されるものを指定している以外は、通常のLog4Jの設定ファイルと同様である。すなわち、この例ではMyRssFeed.xmlというファイルにログが出力される。これがRSSフィードとなるため、RSSリーダに登録しておけばログの監視を行うことができる。

    リスト2 : Log4rssを利用するJavaプログラムの例

    import org.apache.log4j.Logger;
    import org.apache.log4j.xml.DOMConfigurator;

    public class Log4RssTest {
        public static void main(String[] args) {
            
            //Loggerを作成する。
            Logger logger = Logger.getLogger(Log4RssTest.class);
            
            //設定ファイルを読み込む
            DOMConfigurator.configure("log4rss.xml");
            
            logger.debug("It's debug log");
            logger.info("It's info log");
            logger.warn("It's warn log");
            logger.error("It's error log");
            logger.fatal("It's fatal log");
        }
    }

    出力されるRSS

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン