美文网首页
【转】SLF4J优于Log4j作为Java日志整理

【转】SLF4J优于Log4j作为Java日志整理

作者: CNSTT | 来源:发表于2019-02-20 11:01 被阅读0次

    本文转自 https://www.oschina.net/translate/why-use-sl4j-over-log4j-for-logging

    使用SLF4J而不使用Log4J,logback和java.util.Logging

    Log4j中字符串拼接

    logger.debug("Processing trade with id: " + id + " symbol: " + symbol);
    

    SLF4J中带占位符的模板消息

    logger.debug("Processing trade with id: {} and symbol : {} ", id, symbol);
    

    在SLF4J中,我们不需要进行字符串拼接,不会导致使用临时字符串带来的消耗。相反,我们使用带占位符的模板消息来记录日志信息,并提供实际值作为参数。也许你会想,要是有多个参数该怎么办,你可以使用带参数版的日志方法,也可以通过Object数组传入。这确实是非常方便而且高效的记日志的方法。记住,在为日志信息产生最终的字符串之前,该方法会检查是否开启了特定的日志级别,这不仅降低了内存占用,而且预先减少了执行字符串拼接所消耗的CPU时间。

    总结

    1)在你的开源库或者私有库中使用SLF4J,可以使它独立于任何的日志实现,这就意味着不需要管理多个库和多个日志文件。你的客户端将会体会到这一点。
    2)SLF4J提供了占位日志记录,通过移除对isDebugEnabled(), isInfoEnabled()等等的检查提高了代码的可读性。
    3)通过使用日志记录方法,直到你使用到的时候,才会去构造日志信息(字符串),这就同时提高了内存和CPU的使用率。
    4)做一个侧面的说明,越少的临时字符串,垃圾回收器就意味着越少的工作,这就意味着为你的应用程序提供更好的吞吐量和性能。

    相关文章

      网友评论

          本文标题:【转】SLF4J优于Log4j作为Java日志整理

          本文链接:https://www.haomeiwen.com/subject/abvcyqtx.html