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