gpt4 book ai didi

java - 使用 SLF4J 简化延迟日志记录

转载 作者:行者123 更新时间:2023-12-01 17:24:40 24 4
gpt4 key购买 nike

我在 Spring Boot 应用程序中将 SLF4J 与 Logback 结合使用。我对使用惰性日志记录很感兴趣,经过一些研究,我想出了这个解决方案。

这将按预期工作,并且如果日志记录级别不匹配,则不会调用方法。

logger.debug("Begin proceed aspect Method {} : initiator={} | recepient={} | tx_type={}",
new Object() {@Override public String toString() { return proceedingJoinPoint.getSignature().getName(); }},
new Object() {@Override public String toString() { return request.getAgentAlias(); }},
new Object() {@Override public String toString() { return request.getSubscriberMobile(); }},
new Object() {@Override public String toString() { return request.getTxType(); }});

如您所见,我正在创建新对象并一遍又一遍地重写 toString 方法。我不想这样做。有一个更好的方法吗?

我使用的是 SLF4J 1.7.28 版本,它与 Spring Boot 启动器捆绑在一起。请注意,与其他日志框架相比,我更喜欢使用 SLF4J。

我尝试了 slf4j-api 2.0.0-alpha1 版本以及 slf4j-simple 绑定(bind),因为它具有 logger.atDebug.log() 实现。但我无法让它正常工作。

谢谢。

最佳答案

如果您想添加一些条件行,您可以添加 if 语句来检查日志级别是否启用,然后记录消息。

延迟加载被保留,但你会得到类似的东西:

if(log.isDebugEnabled()) {
log.debug(....);
}

关于java - 使用 SLF4J 简化延迟日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61226307/

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