2017-08-16 24 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