为什么 Logback 是 Spring Boot 中的默认日志记录框架?[已关闭]

2022-09-01 17:40:56

我试图搜索Spring文档+互联网上的文章+Stackoverflow的问题,但我没有找到任何有关它的信息。对我来说,Log4J2的配置(尤其是模式)要简单得多,个人品味。

另外,根据这些文章,我发现Log4J2比Logback具有更好的性能:

https://stackify.com/compare-java-logging-frameworks

https://blog.overops.com/the-logging-olympics-a-race-between-todays-top-5-logging-frameworks

log4j、slf4j 和 logback 有什么区别?

https://www.sitepoint.com/which-java-logging-framework-has-the-best-performance/

如果我们要考虑异步记录器,根据Apache,性能会更高,有利于Log4J2 - https://logging.apache.org/log4j/2.x/performance.html 是的,我知道他们的工作是让他们的框架看起来更好,但我相信他们是可靠的。

我的假设是Pivotal选择Logback作为默认值,因为Log4J2是在他们发布Spring-Boot的1.0版本之后的某个时候出现的。

谁能对此有所了解?我的假设是否正确?


答案 1

原因如下:

Phil Webb:我真的不觉得所提出的论点可以证明引入重大变革是合理的。[...]如果我们今天开始Spring Boot,我们很可能选择了Log4J2而不是Logback,但我认为到目前为止,还没有令人信服的理由来引起我们的用户升级的痛苦。[...]我认为我们不太可能考虑切换默认日志记录系统,直到Spring Boot的下一个主要版本。

Ralph Goers:计划添加对从Spring Cloud Config配置Log4j 2的支持。


答案 2

Log4j 2.12.0增加了对利用Spring Cloud Config托管Log4j配置的支持,并增加了对Docker的支持。随着Log4j 2.13.0的发布,Log4j通过提供Spring Lookup进一步与Spring集成,因此Log4j配置可以访问spring属性。此外,一些Log4j系统属性也可以从Spring的bootstrap.yml或appplication.yml文件中读取。2.13.0 还提供了一个 Kubernetes Lookup,允许在 Log4j 配置中将 Kubernetes 属性指定为要包含在日志事件中的属性。

请参阅在云中登录Log4j Spring Cloud Config Client


推荐