出力をログに記録するためにorg.slf4j.Loggerを使用しています。出力はコンソールに送られます。ログファイルにログを記録するにはどうすればよいですか?
private static final Logger LOG = LoggerFactory.getLogger(ClassName.class );
LOG.info("Logging output to console");
Log4j.propertiesファイルを使用していません。必要になると思います。
次のlog4j.propertiesファイルを追加して、Eclipseプロジェクトのさまざまな部分に配置しました。
# Define the file appender
log4j.appender.FileAppender=org.Apache.log4j.RollingFileAppender
log4j.appender.FileAppender.File=logger.log
log4j.appender.FileAppender.layout = org.Apache.log4j.PatternLayout
log4j.appender.FileAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# Direct all messages there
log4j.rootLogger = INFO, FileAppender
私も使った
PropertyConfigurator.configure("log4j.properties");
ただし、ログファイルは表示されません。 log4j.propertiesは効果がないようです。
最も簡単な方法は、log4j.propertiesファイルでFileAppender
を定義することだと思います。
# Define the file appender
log4j.appender.FileAppender=org.Apache.log4j.RollingFileAppender
log4j.appender.FileAppender.File=[log filename].log
log4j.appender.FileAppender.layout = org.Apache.log4j.PatternLayout
log4j.appender.FileAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# Direct all messages there
log4j.rootLogger = INFO, FileAppender
[log filename]
関連するファイル名。ファイルがプロジェクトディレクトリにある場合、Eclipseからプロジェクトを実行すると、Log4jがファイルを自動的に見つけることができると思いますが、100%確実ではありません。アプリケーションの開始時にPropertyConfigurator
を使用して、プロパティファイルの場所をLog4jに通知できます。例:
PropertyConfigurator.configure("log4j.properties");
リソースフォルダーにlog4j.xmlを作成できます。
。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.Apache.org/log4j/">
<appender name="CONSOLE" class="org.Apache.log4j.ConsoleAppender">
<layout class="org.Apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%t] %c{1}.%M(%L) | %m%n" />
</layout>
</appender>
<appender name="FILE" class="org.Apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.Apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="fileNamePattern" value="/yourfolder/debug_%d{dd-MM-yy}.log" />
</rollingPolicy>
<layout class="org.Apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%t] %c{1}.%M(%L) | %m%n" />
</layout>
</appender>
<root>
<level value="WARN" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>