我有一个类Store,其中包含" log.info(...)"等语句。我可以在运行程序时看到日志文件和日志文件。但是,当我运行JUnit测试时,日志文件不会被创建,但我仍然希望看到日志消息。记录器是:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
我的log4j属性:
log4j.rootLogger=DEBUG, STDOUT, file
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=mylogs.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n
问题是,如何在运行Junit测试时创建日志文件和日志消息?
编辑:
部分测试日志属性:
log4j.rootLogger=ERROR, Console
log4j.logger.play=DEBUG
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=testlog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n
答案 0 :(得分:0)
根据该配置,您可能希望在项目的根目录中有一个testlog.log
文件。
尽管如此,未引用file
appender,因此仅使用Console
appender记录消息。但是,您的rootLogger
设置为ERROR
级别,因此 此级别的消息<{1}},DEBUG
或INFO
将会被丢弃。
您可以更改所有非显式配置的记录器继承的WARN
配置,就像在其他rootLogger
中一样,或者为您的包定义记录器,将其设置为{{1 (或者你想要的任何级别)并使用两个附加:log4j.properties
。
进一步阅读资源: - log4j v1.2 into - log4j 1.2 configuration
P.S。:请注意,Eclipse有时会出现文件系统更改问题,并且不会自动更新项目文件。如果发生这种情况运行测试后,尝试在DEBUG
视图中右键单击项目,然后选择刷新,然后滚动到pom所在的末尾。或者,打开您选择的文件浏览器,转到磁盘上的项目根目录,然后您应该看到log4j.logger.my.package.here=DEBUG, Console, file
文件。