我在一个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 starter捆绑的SLF4J 1.7.28版本。请注意,我更喜欢使用SLF4J而不是其他日志框架。
我尝试了slf4j-api 2.0.0-alpha1版本和slf4j-simple绑定,因为它具有logger.atDebug.log()实现。但我无法使其正常工作。
谢谢。