junitを使用してScalaで書かれたテストがあります。このテストは、他の多くのモジュールを備えたマルチポームのモジュール内にあります。ここでScala 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")
}
}
そして、ここでは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
レベルは印刷されません。
ロガーが他のプロジェクトの1からファイルを拾うかもしれないと私には思えます。どうして?
私はテストの最初の行のコメントを解除した場合、すべてのレベルが印刷されます。
は、実行コマンドに-Dlog4j.debug
を追加しようとしたが、log4jは、それを無視しているようです。
私が迷っているものは何ですか?
「log4j.properties」はどこにありますか? – mfirry