我在 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 方法。我不想这样做。有一个更好的方法吗?
我正在使用与 Spring Boot 启动器捆绑在一起的 SLF4J 1.7.28 版本。请注意,我更喜欢使用 SLF4J 而不是其他日志记录框架。
我尝试了 slf4j-api 2.0.0-alpha1版本以及slf4j-simple绑定,因为它具有 logger.atDebug.log() 实现。但我无法让它正常工作。
谢谢你。