2017-08-16 26 views
0

我有一个测试用Scala编写,使用junit。测试是在一个多模块与许多其他模块。斯卡拉junit捡错了log4j.properties文件

下面是测试代码:

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的似乎忽略它。

任何想法我失踪?

+0

哪里是你的'log4j.properties'在什么位置? – mfirry

回答

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