【问题标题】:Does apache commons logging supports placeholders?apache commons 日志记录是否支持占位符?
【发布时间】:2017-04-15 13:18:12
【问题描述】:

Here 是关于apache commons logging 的用户指南,但它没有关于占位符的示例。 Slf4j 可以根据日志级别替换{},例如当未启用日志级别时,它不会调用toString 并且不会替换{}。 apache commons logging 是否支持此功能?

【问题讨论】:

  • SLF4J Logger 类有 methods 接受替换参数,例如debug(String format, Object... arguments)。 Commons Logging Log 类没有这样的methods。如果没有提供值的方法,您如何设想它会起作用?它没有。它不能。由于缺乏研究而投反对票,因为简单地看一下 API 就会给你答案。
  • since a simple look at the API would have given you the answer - 我个人认为每个 现代 日志框架或多或少都支持这一点。缺乏这样的功能是非常令人困惑的。这就是问的原因。
  • Commons Logging != 现代框架

标签: java logging slf4j apache-commons-logging


【解决方案1】:

不,它不支持占位符。如果您需要动态生成字符串(由于内存分配而导致的昂贵操作),请将日志记录调用包装在一个条件中:

性能通常是一个日志问题。通过检查适当的属性,组件可以避免昂贵的操作(生成要记录的信息)。

例如,

if (log.isDebugEnabled()) {
    ... do something expensive ...
    log.debug(theResult);
}

——[https://commons.apache.org/proper/commons-logging/apidocs/org/apache/commons/logging/Log.html]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2011-02-16
    • 2020-01-27
    • 1970-01-01
    • 2018-06-06
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多