java - 使用 Slf4j 和 Log4j2 进行 Spring Boot 日志记录。删除 spring-boot-starter-logging 的原因
问题描述
我需要在我的应用程序中使用 slf4j 和 log4j2。但在所有博客和教程中,它都说——“我们需要排除对 spring-boot-starter-logging 的依赖,并添加对 spring-boot-starter-log4j2 的依赖。”
我了解内部 spring-boot-starter-logging 使用 log4j/logback/spring-jcl 等,但不使用 log4j2。但我的疑问是为什么我们需要排除 'spring-boot-starter-logging' ,我们不能只添加 'spring-boot-starter-log4j2' 并开始使用 log4j2。? 为什么要排除 'spring-boot-starter-logging' ?
解决方案
spring-boot-starter-logging 对 logback 的依赖会导致它被包含在内。如果您还添加了 spring-boot-sarter-log4j2,那么您最终会出现 2 个 SLF4J 实现,并会收到警告。SLF4J 将选择它在类路径中首先找到的那个。
如果你删除 spring-boot-starter-logging 你也可以直接包含你想要的 log4j 依赖项。这样你就可以指定你想要的任何版本,而不是 Spring 说你必须使用的版本。
推荐阅读
- python - 如何抓取多个 div(并将它们放在 csv 中)?
- javascript - mount() 仅在组件 Vue.js 上运行一次
- scala - 使用 case/match 或 if/else 匹配空列表?
- ocaml - 模式匹配期间的 Ocaml 语法错误
- php - 图片未上传到文件管理器 codeigniter 的文件夹中
- java - 如何使用循环减少每行中打印的(相同)字符的数量?
- sql-server - SQL Server LIKE 包含括号字符(变量)
- jquery - jQuery:grep() 一个数组并从中获取匹配的值
- ruby-on-rails - 如何在初始化程序中设置回调?
- node.js - AWS lambda javascript IAM 角色