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

sa-struts-tutorialでは、

log4j.properties

log4j-1.2.13.jar

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

ここでは、ログをファイルに出力するように設定を変更しましょう。 変更対象は、

sa-struts-tutorial\src\main\resources\log4j.properties

です。

log4j.properties

(変更前)

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
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

↓ (変更後:log4j.appender.Cの属性設定を変更しています

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
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

では、実際にアクションクラスからログを出力させてみましょう。ロガーインスタンスを取得して、ログ出力メソッド(logger.info)を呼びます。

AddAction.java

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 
 
-
|
|
|
|
|
-
|
|
|
!
!
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に以下のようにログが出力されます。

INFO  2008-08-06 11:07:49,764 [http-8080-1] ログ出力します

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:26:04 (3085d)