禁用对scalatest log4j消息的日志记录的方法是什么:
log4j.properties如下:
log4j.rootLogger=INFO,CA,FA
#Console Appender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{HH:mm:ss.SSS} %p %c: %m%n
log4j.appender.CA.Threshold = INFO
#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.append=false
log4j.appender.FA.file=target/unit-tests.log
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%d{HH:mm:ss.SSS} %p %c{1}: %m%n
log4j.appender.FA.Threshold = INFO
..
log4j.logger.org.scalatest=WARN
Run Code Online (Sandbox Code Playgroud)
但是我们看到INFO级别的scalatest log4j消息:
2014-11-30 14:25:57,263 INFO [ScalaTest-run-running-DiscoverySuite] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(840)) - hadoop.native.lib is deprecated. Instead, use io.native.lib.available
2014-11-30 14:25:57,493 INFO [ScalaTest-run-running-DiscoverySuite] hbase.HBaseCommonTestingUtility (HBaseTestingUtility.java:startMiniCluster(840)) - Starting up minicluster with 1 master(s) and 2 regionserver(s) and 2 datanode(s)
2014-11-30 14:25:57,499 INFO [ScalaTest-run-running-DiscoverySuite] hbase.HBaseCommonTestingUtility (HBaseTestingUtility.java:setupClusterTestDir(390)) - Created new mini-cluster data directory: /shared/hwspark/target/
Run Code Online (Sandbox Code Playgroud)
或者,您可以在一个测试中的任何位置抛出这些代码,
org.slf4j.LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME)
.asInstanceOf[ch.qos.logback.classic.Logger]
.setLevel(ch.qos.logback.classic.Level.WARN)
Run Code Online (Sandbox Code Playgroud)
这将把所有日志记录设置到该WARN级别.
这些日志消息实际上并不是由 ScalaTest 打印的,而是由您在 ScalaTest 测试中使用的内容打印的。“ScalaTest”出现在其中的原因是,ScalaTest 在执行套件和测试时确实会更改线程的名称,因此,如果有人有一个永远挂起的套件并进行线程转储来调查,那么测试和测试的内容就更明显了。套件导致运行挂起。Log4J 似乎会打印出方括号中的线程名称,这样可以提示您这些日志消息的来源。
| 归档时间: |
|
| 查看次数: |
2608 次 |
| 最近记录: |