2009-01-21

Java : log4j を使ってログを syslog に出力してみる(in CentOS5) - 2

log4j を使ってログを syslog に出力してみる。in CentOS5

条件
  • 外部ファイルを使用しない
  • カテゴリ名は syslog とする
  • Facility は local0 とする
  • Facility が local0 のログは /home/work/logs/sample.log に出力する
  • ログレベルが WARN 以上のメッセージを出力する


※ 構成、sample.jar(Test.java)、run.sh 以外は 前回 と同じ


構成
/home
└ /work
├ /jar
│  ├ sample.jar
│  └ log4j-1.2.15.jar
├ /logs
└ run.sh
 



ファイル作成

sample.jar(Test.java)
package foo.boo;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.net.SyslogAppender;

public class Test {

    static Logger logger= Logger.getLogger("syslog");

    public static void main(String[] args) {
        PatternLayout layout = new PatternLayout();
        layout.setConversionPattern("%6p %c{1} - %m%n\n");
        SyslogAppender appender = new SyslogAppender();
        appender.setSyslogHost("127.0.0.1");
        appender.setLayout(layout);
        appender.setFacility("locel0");
        appender.activateOptions();
        logger.addAppender(appender);
        logger.setLevel(Level.WARM);
        logger.debug("debug.");
        logger.info("info.");
        logger.warn("warn.");
        logger.error("error.");
        logger.fatal("fatal.");
    }
}
 


run.sh
#!/bin/sh

SAMPLE_HOME=${PWD}

export LIBS=${SAMPLE_HOME}/jar/log4j-1.2.15.jar:${SAMPLE_HOME}/jar/sample.jar

JAVA_CMD=$JAVA_HOME/bin/java

CMD=${JAVA_CMD}" -classpath "${LIBS}" foo.boo.Test"

${CMD}
 






なんら前回と大差ない。
log4j.properties を削除して、ソース内に設定内容を保持しただけ。

0 件のコメント:

コメントを投稿