2

Log4J ロギングを Java アプリケーションに統合し、情報をログ ファイルに書き込み、コンソールに情報を表示したいと考えています。残念ながら、これを軌道に乗せるのに苦労しました。Win 7でEclipse Junoを使用しています。

私の log4j.properties ファイル:

#configure logfile
log4j.appender.logfile = org.apache.log4j.RollingFileAppender
log4j.appedner.logfile.File = MyAppLog.log
log4j.appender.logfile.Append = true
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern = %-5p %d [%t][%F:%L] : %m%n

#configure stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-5p %d [%t][%F:%L] : %m%n

log4j.rootLogger = debug, logfile, stdout

上記は、このトピックに関する他のいくつかの受け入れられた回答のパターンに従っていると思います。

VM 引数を使用して、この log4j.properties ファイルの場所を指定しました。

-Dlog4j.configuration=file:///${workspace_loc}\path\to\file\log4j.properties

Java クラスでロガーをインスタンス化します。

static Logger logger = Logger.getLogger(MyApp.class.getName());

文字列をログに記録します:

logger.info("barfoo");

この構成により、起動時に次の警告/エラーが発生します。

log4j:WARN File option not set for appender [logfile].
log4j:WARN Are you using FileAppender instead of ConsoleAppender?
log4j:ERROR No output stream or file set for the appender named [logfile]

ログ ファイルは生成されません。ただし、コンソールのロギングは問題なく機能しているようです。

4

1 に答える 1

10

これはばかげているように聞こえます-タイプミスがあります。log4j.appedner.logfile.File代わりにlog4j.appender.logfile.File (「n」と「d」が入れ替わっていることに注意してください)。これが、ファイルを設定していないと不平を言っている理由です。

于 2013-08-12T21:53:08.657 に答える