有时候当我看到我的日志代码时,我会想我是否做得正确。也许没有明确的答案,但我有以下疑虑:
库类
我有几个库类可能会记录一些INFO
消息。致命错误则报告为异常。当前我在我的类中使用一个静态的logger实例,并将类名作为日志名称。(Log4j's: Logger.getLogger(MyClass.class)
)
这是正确的方式吗?也许这个库类的用户不想要从我的实现中收到任何消息,或者希望将其重定向到特定应用程序的日志。我应该允许用户从“外部世界”设置一个logger吗?如何处理这种情况?
通用日志
在某些应用程序中,我的类可能希望将日志消息写入特定的日志,而不是由类名标识。(例如:HTTP请求日志) 如何最好地实现这样的操作?一个查找服务脑海中浮现...
override def debug(msg: => AnyRef) = if (isDebugEnabled) logger.debug(msg)
http://github.com/dpp/liftweb/blob/338119b8d7a76adcb9f45e9aa8a2b946d9c81118/lift-util/src/main/scala/net/liftweb/util/Log.scala - Blair Zajac