3.3. org.apache.log4j.ConsoleAppender クラス
ConsoleAppender クラスは前節の WriterAppender クラスを拡張したクラスです。標準出力である System.out 及び標準エラー出力である System.err にログを出力するために使用します。デフォルトの出力ターゲットは System.out です。
ConsoleAppender オブジェクトを生成するには、次のコンストラクタを使用します。
1: ConsoleAppender() 2: ConsoleAppender(Layout layout) 3: ConsoleAppender(Layout layout,String target)
引き数に org.apache.log4j.Layout オブジェクトを指定することができます。あとでセットする場合は、setLayout( ) メソッドを使用します。3つ目のコンストラクタの引き数で指定している「target」は出力先を指定するもので、標準出力か標準エラー出力かを指定します。標準出力を指定するときは ConsoleAppender.SYTEM_OUT を、標準エラー出力を指定する場合は、ConsoleAppelnder.SYSTEM_ERR を使用します。1 つ目または 2 つ目のコンストラクタで ConsoleAppender オブジェクトを生成した場合は、setTarget( ) メソッドを使用して出力先を指定することが可能です。
以下の例では、Layout に org.apache.log4j.PatternLayout を使用して、ConsoleAppender オブジェクトを生成しています。
import org.apache.log4j.Appender; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.PatternLayout; (略) //org.apache.log4j.PatternLayoutの生成 PatternLayout layout = new PatternLayout(); //引き数にLayoutのみをとるコンストラクタを使用 Appender appender1 = new ConsoleAppender(layout); //出力先に標準出力を指定 appender1.setTarget(ConsoleAppender.SYSTEM_OUT); //出力先に標準エラー出力を指定するAppenderオブジェクトを使用 Appender appender2 = new ConsoleAppender(layout,ConsoleAppender.SYSTEM_ERR); (略)
設定ファイルに記述するときは次のように記述します。
1: # sampleLogger 2: log4j.logger.sampleLogger= WARN,A1 3: 4: # APPENDER A1 5: log4j.appender.A1 = org.apache.log4j.ConsoleAppender 6: log4j.appender.A1.Target = System.out # 標準エラー出力の場合は、System.err 7: log4j.appender.A1.layout = org.apache.log4j.PatternLayout 8: log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
3.4. org.apache.log4j.FileAppender クラス
FileAppender クラスは ConsoleAppender クラスと同様、WriterAppender クラスを拡張したものです。ファイルにログを追加します。
まず FileAppender クラスについてですが、このクラスのオブジェクトは次のコンストラクタで生成します。
1: FileAppender() 2: FileAppender(Layout layout,String filename) 3: FileAppender(Layout layout,String filename,boolean append)
引き数に Layout オブジェクトとファイル名を指定することができます。後で指定する場合は、setLayout( ) メソッドを使用します。3つ目のコンストラクタの3つ目の引き数は、ログの出力先ファイルを追記モードでオープンするのか、上書きモードでオープンするのかを指定するものです。true の場合は、追記モード、false の場合は上書きモードです。1 行目のコンストラクタを使用すると、デフォルトとして true が設定されます。これは setAppender( ) を使用して後で変更することも可能です。
設定ファイルで出力先を指定するには次のように記述します。
1: # sampleCategory 2: log4j.logger.sampleLogger= WARN,A2 3: 4: # APPENDER A2 5: log4j.appender.A2 = org.apache.log4j.FileAppender 6: log4j.appender.A2.Append=false # 上書きモード 7: log4j.appender.A2.File = sample.log # sample.logファイルに出力 8: # log4j.appender.A2.File = System.out とすると標準出力に出力 9: (略)