web-dev-qa-db-ja.com

コンソールに書き込むlog4jの作成方法

Log4jにログをファイルとコンソールに書き込むように指示する方法はありますか?おかげで私のプロパティがあります:

log4j.rootLogger=DEBUG,console,R
log4j.rootLogger=INFO, FILE

log4j.appender.CONSOLE=org.Apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.Apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

log4j.appender.FILE=org.Apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log4j.log
log4j.appender.FILE.MaxFileSize=512KB
log4j.appender.FILE.MaxBackupIndex=3
log4j.appender.FILE.layout=org.Apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n
58
fatnjazzy

ルートロガーの定義は少し混乱しています。 log4j documentation を参照してください。

これは標準のJavaプロパティファイルです。つまり、行はkey = valueのペアとして扱われます。2番目のlog4j.rootLogger行は最初の行を上書きしています。これは、consoleアペンダーに何も表示されない理由を説明しています。

2つのrootLogger定義を1つにマージする必要があります。 DEBUGメッセージをコンソールに、INFOメッセージをファイルに送信しようとしているようです。ルートロガーはoneレベルしか持てないため、アペンダーが適切なレベルになるように設定を変更する必要があります。

これが正しいことを確認していませんが、次のようになります。

log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.Apache.log4j.ConsoleAppender
log4j.appender.file=org.Apache.log4j.RollingFileAppender

また、大文字と小文字の違いがあることに注意してください。ある場所にはコンソールがあり、別の場所にはCAPSがあります。

67

Log4jファイルは、コメントを読む以下のようになります。

# Define the types of logger and level of logging    
log4j.rootLogger = DEBUG,console, FILE

# Define the File appender    
log4j.appender.FILE=org.Apache.log4j.FileAppender    

# Define Console Appender    
log4j.appender.console=org.Apache.log4j.ConsoleAppender    

# Define the layout for console appender. If you do not 
# define it, you will get an error    
log4j.appender.console.layout=org.Apache.log4j.PatternLayout

# Set the name of the file    
log4j.appender.FILE.File=log.out

# Set the immediate flush to true (default)    
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode    
log4j.appender.FILE.Threshold=debug

# Set the append to false, overwrite    
log4j.appender.FILE.Append=false

# Define the layout for file appender    
log4j.appender.FILE.layout=org.Apache.log4j.PatternLayout    
log4j.appender.FILE.layout.conversionPattern=%m%n
33
ramit girdhar

これはデバッグモードのコンソールでうまく機能します

log4j.appender.console=org.Apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.Apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n
6
Brijendra Verma

コンソールとFILEの両方でログインするために、以下のようにルートロガーを作成します。

log4j.rootLogger = ERROR、console、FILE

そして、Target、Layout、ConversionPattern(ファイルなどのMaxFileSize)のようなそれぞれの定義を書きます。

0