【发布时间】:2018-01-24 15:34:02
【问题描述】:
我有一个使用 junit 用 Scala 编写的测试。测试在一个带有许多其他模块的多 pom 模块中。
这是测试的代码:
import org.apache.log4j.Logger
import org.apache.logging.log4j.scala.Logging
import org.junit._
class MyTest extends Logging {
@Test
def mainTest() = {
//val logger = Logger.getLogger("MyTest")
logger.fatal("fatal")
logger.error("error")
logger.warn("warn")
logger.info("info")
logger.debug("debug")
logger.trace("trace")
}
}
这里是 resources 文件夹中的 log4j.properties 文件:
log4j.rootCategory=ALL, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n
maven依赖有:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api-scala_2.10</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
当我运行测试时,debug 和 trace 级别没有打印出来。
在我看来,记录器可能正在从其他项目之一中获取文件。为什么?
如果我取消注释测试的第一行,所有级别都会打印出来。
尝试在运行命令中添加-Dlog4j.debug,但 log4j 似乎忽略了它。
知道我错过了什么吗?
【问题讨论】:
-
你的
log4j.properties在哪里?