我在 Scala 版本 6.5.0 中使用Twitter 的日志记录框架。
我写了一个玩具用法示例:
import com.twitter.logging._
object TestFormatter extends Formatter
{
override def format( record : java.util.logging.LogRecord) = "TEST %s> ".format( record.getLevel.getName ) + formatText(record) + lineTerminator
}
object Main extends App
{
override def main( args : Array[String] ) : Unit =
{
// obtain a logger
val log = Logger.get( getClass )
// clear any existing message handlers
Logger.clearHandlers
// add a new handler, using my toy formatter
log.addHandler( ConsoleHandler( TestFormatter, Some( Level.DEBUG ) )() )
// log a couple of test messages
log.debug( "DEBUG LOG" )
log.warning( "WARNING LOG" )
}
}
TestFormatter 类并不是真正必要的,但有助于突出我的问题。我很确定我应该从这段代码的输出中看到如下内容:
TEST DEBUG> DEBUG LOG
TEST WARNING> WARNING LOG
但是,我实际得到的是:
TEST WARNING> WARNING LOG
WARNING: WARNING LOG
这引发了两个问题:
- 尽管我清除了现有的处理程序,为什么其他一些处理程序也处理了我的警告消息?- 解决了
- 为什么,当我将记录器的级别设置为调试时,我在调试级别记录的消息没有得到处理?
如果有人能对这些问题中的任何一个有所了解,我将不胜感激。