java - Spring Boot SLF4J 日志记录性能

标签 java spring spring-boot slf4j

现在,当我使用调试记录消息时,我已经在应用程序中设置了日志级别信息

 logger.debug("Debug logs");

日志框架还会在内部构造日志对象吗?尽管当应用程序日志设置为信息级别时,不会打印调试消息。如果日志对象构造那么我必须写

if(logger.isDebugEnabled()) {
    logger.debug("Debug logs");
}

这看起来像是丑陋的代码。请建议我在这种情况下必须做什么

谢谢

最佳答案

只要使用参数化消息,就无需使用 if 语句来包装日志记录语句。

仅当日志语句如下所示且 getEntry() 是一项昂贵的操作时,您才应考虑包装日志语句:

logger.debug("The new entry is {}.", getEntry()); 

您可以引用SL4J logging performance documentation .

关于java - Spring Boot SLF4J 日志记录性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66134524/

相关文章:

java - 查找所有可能的枚举组合

java - 字符串、byte[] 和压缩

spring-boot - 如何使用 Spring(java) 验证 facebook 授权 token 并注册用户

spring-boot - 使用 Spring Data neo4j - SDN/ReactiveNeo4j 创建重复关系(neo4j 社区版 4.4.4)

java - tomcat配置导致@Service的2个副本运行

amazon-web-services - Spring Boot AWS Elastic Beanstalk - nginx 错误连接被拒绝 http ://127. 0.0.1:5000

java - mysql 选择 IN 查询中的最后结果

java - 删除所有项目后无法单击组合框

spring - 使用 @Async 方法的 bean 不会 Autowiring

java - ClassNotFoundException : org. hibernate.ejb.HibernatePersistence 使用 maven 部署