gpt4 book ai didi

java - 基于String创建的slf4j和log4j的区别

转载 作者:IT老高 更新时间:2023-10-28 20:51:25 25 4
gpt4 key购买 nike

如果我们写在 log4j 中

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

它会在字符串池中创建字符串,但是当我们使用 slf4j 时,我们使用这样的参数

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

那么这两个语句有什么区别,slf4j会在运行时创建String还是不创建呢?

最佳答案

不同之处在于性能的提高,在 log4j 中,即使日志级别低于调试,每次评估行时都会连接字符串,因此永远不会使用字符串。

slf4j,字符串和参数被传递给记录器,只有在实际使用日志消息时才会替换它们。

想象一下,每隔几行就带有调试语句的代码,在生产和调试被禁用时,这是永远不会使用的大量字符串操作。

关于java - 基于String创建的slf4j和log4j的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com