【问题标题】:Can eureka server use log4j-over-slf4j?eureka 服务器可以使用 log4j-over-slf4j 吗?
【发布时间】:2015-03-12 23:04:31
【问题描述】:

In the spring cloud eureka documentation:

Eureka 服务器与 log4j 绑定,不能与 logback 一起使用,因此与普通的 Spring Boot 应用程序相比,必须调整依赖项配置。 spring-cloud-starter-eureka-server 为您执行此操作,但如果您通过另一个依赖项传递地添加 logback,您将需要手动排除它,例如在 Maven 中

From the SLF4J documentation:

当应用程序调用桥接器中不存在的 log4j 组件时,log4j-over-slf4j 模块将不起作用。例如,当应用程序代码直接引用 log4j 附加器、过滤器或 PropertyConfigurator 时,log4j-over-slf4j 将不足以替代 log4j。

这是 eureka 服务器在做什么,是什么阻止我们使用 log4j-over-slf4j?

【问题讨论】:

标签: spring-cloud


【解决方案1】:

在正常情况下,日志框架包括一个抽象层和一个实现,如slf4j-apislf4j-simplelogback 也是 slf4j 的一个实现。当我们使用记录器时,我们使用抽象层的接口来进行记录。它将找到实现库本身。

log4j-over-slf4j 表示我们使用log4j 中的接口,但使用 slf4j 实现来进行实际日志记录。如果你使用 logbak 作为实际的日志实现,它将使用 slf4j 的日志属性,即logbak.xml

'The Eureka server is bound to log4j'表示我们使用log4j接口,但是spring boot添加log4j-over-slf4jlogback来使用slf4j日志框架。

log4j-over-slf4j 模块在应用程序调用桥中不存在的 log4j 组件时将不起作用'意味着您不应在代码中使用 log4j 实现库中的类。否则无法使用 log4j-over-slf4j 来使用 slf4j 实现。

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2020-07-13
    • 1970-01-01
    • 2016-11-11
    • 2021-03-14
    • 2020-09-20
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    相关资源
    最近更新 更多