我需要将Logger的输出重定向到文件。输出仅发送到控制台。
我使用了 log4j.propertites
的这些配置# Set root logger level to INFO and appender to stdout.
log4j.rootLogger=INFO, stdout, file
# stdout is set to be a ConsoleAppender.
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# stdout uses PatternLayout.
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
log4j.appender.stdout.threshold=info
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/home/masi/logging.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=20
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p [%d{dd.MM.yy HH:mm:ss}] %C{1} - %m [thread: %t]\n
log4j.appender.file.threshold=info
但是当它不起作用时,我删除了这个文件并使用了 logback.xml 而不是它。
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/home/masi/logging.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<logger name="test.suite" level="TRACE"/>
<root level="debug">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE" />
</root>
但我仍然有一个输出到控制台。 我必须做什么样的配置来完成我的任务?
答案 0 :(得分:1)
您的log4j.properites文件应该像这样配置。在log4j.logger之后指定您的包。例如,如果您的包是your.package.name,则配置将如下所示
log4j.logger.your.package.name=INFO, LOG_FILE
log4j.appender.LOG_FILE = org.apache.log4j.RollingFileAppender
log4j.appender.LOG_FILE.MaxBackupIndex=5
log4j.appender.LOG_FILE.MaxFileSize=100MB
log4j.appender.LOG_FILE.File = C:/logs/log_file.log
log4j.appender.LOG_FILE.Append = true
log4j.appender.LOG_FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.LOG_FILE.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
关键是通过传递
告诉log4j文件的位置-Dlog4j.configuration = file:/ [path_to_your_log4j.properties file]在你的JVM args中。