在同一个 Spring 应用程序中使用两个日志记录框架
Using two logging framework in same Spring application
我们有一个公共服务模块,它使用旧版 log4J 进行日志记录。我们需要在新的 Spring 引导应用程序中使用此模块作为依赖项。在新应用程序中,我们尝试将 SLF4J-Logback 设置为日志记录框架,这是推荐的,因为 Log4J 是旧的,但是我们观察到日志消息将转到不同的日志文件。我认为发生这种情况是因为我们的公共模块使用 log4j 而我们在新模块中使用 logback。现在我们应该使用哪种方法?将日志消息放在两个不同的文件中会使阅读和调试问题变得困难。我应该将 log4J 和 logback 配置为使用相同的文件吗?那安全吗?或者我们也在新应用程序中使用 log4j 并删除 logback ?
我强烈建议您使用日志外观,您已经使用 SLF4J。
这意味着 logback 与 SLF4J
结合使用是一个完美的选择。因此 SLF4J
作为各种日志框架的简单外观。它允许重定向来自遗留日志记录框架的日志消息,使其表现得就像它们被发送到 SLF4J
API 一样。
将适当的 briding module (log4j-over-slf4j
) 添加到您的类路径,应该是您为 "installation".
所做的一切
我们有一个公共服务模块,它使用旧版 log4J 进行日志记录。我们需要在新的 Spring 引导应用程序中使用此模块作为依赖项。在新应用程序中,我们尝试将 SLF4J-Logback 设置为日志记录框架,这是推荐的,因为 Log4J 是旧的,但是我们观察到日志消息将转到不同的日志文件。我认为发生这种情况是因为我们的公共模块使用 log4j 而我们在新模块中使用 logback。现在我们应该使用哪种方法?将日志消息放在两个不同的文件中会使阅读和调试问题变得困难。我应该将 log4J 和 logback 配置为使用相同的文件吗?那安全吗?或者我们也在新应用程序中使用 log4j 并删除 logback ?
我强烈建议您使用日志外观,您已经使用 SLF4J。
这意味着 logback 与 SLF4J
结合使用是一个完美的选择。因此 SLF4J
作为各种日志框架的简单外观。它允许重定向来自遗留日志记录框架的日志消息,使其表现得就像它们被发送到 SLF4J
API 一样。
将适当的 briding module (log4j-over-slf4j
) 添加到您的类路径,应该是您为 "installation".