如何使用log4j创建具有不同内容的多个日志文件 [英] How to create multiple log files of different content with log4j
问题描述
我尝试使用log4j创建多个具有不同内容的日志文件.
这是我的log4j.properties
文件
I'm tried to create multiple log files of different content with log4j.
This is my log4j.properties
file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/home/dhanushka/Documents/log4j.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{1}] %m%n
log4j.appender.testng=org.apache.log4j.RollingFileAppender
log4j.appender.testng.File=/home/dhanushka/Documents/TestNGlog.log
log4j.appender.testng.MaxFileSize=1MB
log4j.appender.testng.MaxBackupIndex=1
log4j.appender.testng.layout=org.apache.log4j.PatternLayout
log4j.appender.testng.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{1}] %m%n
# Direct log messages to 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=%d{ABSOLUTE} %-5p [%c{1}] %m%n
# Root logger option
log4j.rootLogger=INFO, file, admin, stdout, testng
# Log everything. Good for troubleshooting
log4j.logger.org.hibernate=INFO
# Log all JDBC parameters
log4j.logger.org.hibernate.type=ALL
这是我在代码中的实现方式.
Here is how I implemented in code.
public class VerifyAmenities {
private static Logger defaultLogger = Logger.getLogger("file");
private static Logger testNGlogger = Logger.getLogger("testng");
.
.
}
defaultLogger.info("This is default Logger");
testNGlogger.info("This is testNG Logger");
这样,它将创建两个日志文件.但是两者都有相同的日志.感谢任何人的答复.
By this it creates two log files. But Both has same logs. Appreciate any ones reply.
推荐答案
最后,我找到了解决方法.
Finally I found the way of doing this.
# Root logger option
log4j.rootLogger=TRACE, stdout, file
log4j.category.testngLogger=DEBUG, testng
log4j.additivity.testngLogger=false
在rootLogger
中,这就像所有日志之父.默认情况下继承.根记录器选项应该是这样的.
如果您将additivity
设置为false
,它将永远不会进入rootLogger
In rootLogger
, that is like a father of all logs. It inherit by default. Root logger option should be like that.
If you additivity
set to false
it will never goes to rootLogger
在log4j.xml
文件中,它将像这样.
In log4j.xml
file it will goes like this.
<logger name="testngLogger" additivity="false">
<level value="DEBUG" />
<appender-ref ref="testngLogger" />
</logger>
<root>
<priority value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="fileLogger" />
</root>
这篇关于如何使用log4j创建具有不同内容的多个日志文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!