【问题标题】:Scala junit picking up wrong log4j.properties fileScala junit 拾取错误的 log4j.properties 文件
【发布时间】: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>

当我运行测试时,debugtrace 级别没有打印出来。

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

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

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

知道我错过了什么吗?

【问题讨论】:

  • 你的log4j.properties在哪里?

标签: scala logging junit log4j


【解决方案1】:

您正在使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2012-04-12
    • 1970-01-01
    • 2015-11-06
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多