0

在 spring cloud eureka 文档中:

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

来自 SLF4J 文档:

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

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

4

1 回答 1

0

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

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

“Eureka 服务器与 log4j 绑定”意味着我们使用 log4j 接口,但 spring boot 添加log4j-over-slf4jlogback使用 slf4j 日志框架。

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

于 2017-01-06T11:39:35.687 回答