Scala junit选错了log4j.properties文件

时间:2017-08-16 13:07:35

标签: scala logging junit log4j

我使用junit在Scala中编写了一个测试。该测试位于具有许多其他模块的多个模块中。

以下是测试代码:

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")
  }
}

这是log4j.properties文件,它位于resources文件夹中:

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>

运行测试时,不会打印debugtrace级别。

在我看来,记录器可能正在从其他项目之一中获取文件。为什么呢?

如果我取消注释测试的第一行,则会打印所有级别。

尝试在运行命令中添加-Dlog4j.debug,但log4j似乎忽略了它。

知道我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您使用的是log4j2。

您的文件名应为log4j2.properties

此外,.properties文件的语法也有变化。以下示例取自here,可以帮助您入门:

name=PropertiesConfig
property.filename = logs
appenders = console, file

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/propertieslogs.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

loggers=file
logger.file.name=guru.springframework.blog.log4j2properties
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT