Top > SAStrutsあれこれ > Log4Jでファイルにログを出力させてみましょう。

#freeze
#contents

----
* 序 [#g1da7aa8]
sa-struts-tutorialでは、
>log4j.properties&br;
>log4j-1.2.13.jar&br;

が同梱されており、またコンソールにログを出力するように、初期段階で設定されています。

ここでは、ログをファイルに出力するように設定を変更しましょう。
変更対象は、
>sa-struts-tutorial\src\main\resources\log4j.properties&br;

です。

* 改 [#maa10f50]
** log4j.properties [#hbf4be53]
(変更前)
#code(sh){{
log4j.category.org.seasar=DEBUG, C
log4j.additivity.org.seasar=false
 
log4j.category.tutorial=DEBUG, C
log4j.additivity.tutorial=false
 
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.ImmediateFlush=true
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n
 
log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
}}
↓
(変更後:&color(red){log4j.appender.Cの属性設定を変更しています};)
#code(sh){{
log4j.category.org.seasar=DEBUG, C
log4j.additivity.org.seasar=false
 
log4j.category.tutorial=DEBUG, C
log4j.additivity.tutorial=false
 
log4j.appender.C = org.apache.log4j.FileAppender
log4j.appender.C.Append=true 
log4j.appender.C.File = c:\\sample.log
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%-5p %d [%t] %m%n
 
log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
}}

* 結 [#oa30523e]
では、実際にアクションクラスからログを出力させてみましょう。ロガーインスタンスを取得して、ログ出力メソッド(logger.info)を呼びます。
** AddAction.java [#p1a6c001]
#code(java){{
import org.apache.log4j.Logger;
---
public class AddAction {
 
    // インスタンスの生成
    Logger  logger = Logger.getLogger(AddAction.class);
----
    @Execute(input = "index.jsp")
    public String submit() {
        result = Integer.valueOf(arg1) + Integer.valueOf(arg2);
        logger.info("ログ出力します");
        return "index.jsp";
    }
}
}}

として実行すれば、c:\\sample.logに以下のようにログが出力されます。
#code(sh){{
INFO  2008-08-06 11:07:49,764 [http-8080-1] ログ出力します
}}

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS