use*_*882 66 java spring log4j junit4
突然间,这在JUnit测试期间不断发生.一切正常,我写了一些新的测试,发生了这个错误.如果我还原它,它就不会消失.这是为什么?
log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Run Code Online (Sandbox Code Playgroud)
Axe*_*ine 72
您编写的新测试(直接或间接)使用使用Log4j进行日志记录的类.
需要配置Log4J以使此日志记录正常工作.
将log4j.properties(或log4j.xml)文件放在测试类路径的根目录中.
它应该有一些基本配置,如
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# An alternative logging format:
# log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n
Run Code Online (Sandbox Code Playgroud)
默认情况下,appender输出到控制台,但您也可以像这样显式设置目标:
log4j.appender.A1.Target=System.out
Run Code Online (Sandbox Code Playgroud)
这会将所有输出以漂亮的格式重定向到控制台.更多信息可以在Log4J手册中找到,
然后将正确配置Log4J Logging,此警告将消失.
tst*_*ter 48
如果您不想打扰文件,可以在代码中执行以下操作:
static
{
Logger rootLogger = Logger.getRootLogger();
rootLogger.setLevel(Level.INFO);
rootLogger.addAppender(new ConsoleAppender(
new PatternLayout("%-6r [%p] %c - %m%n")));
}
Run Code Online (Sandbox Code Playgroud)
在类路径的根目录中添加至少一个appender的log4j.properties(log4j.xml)文件.
文件的内容(log4j.properties)可以很简单
log4j.rootLogger=WARN,A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c %x - %m%n
Run Code Online (Sandbox Code Playgroud)
这将启用具有默认日志级别的log4j日志记录,WARN
并使用java控制台记录消息.
归档时间: |
|
查看次数: |
98874 次 |
最近记录: |