我们正在尝试构建一个 Springboot 启动器,它将以编程方式创建 log4j2 配置,因此开发人员不必费心创建 log4j2.xml 文件。问题在于 log4j2 编程 API 随版本的不同而变化。我们已经使用 log4j2 2.5 版测试了我们的代码,它在独立环境中正常工作
现在我们尝试将我们的 API 包含在 Springboot 启动器中,以便所有 springboot 应用程序都可以包含此启动器,而不必担心 log4j 配置。
我们面临的问题是 Springboot 捆绑了自己的 log4j 版本,我们无法控制用户将使用哪个版本的 Springboot。
有没有一种方法可以强制 springboot 启动器加载 log4j2 2.5 版本,否则我们的测试 Springboot 应用程序会抱怨 log4j 中找不到某些方法
我想找到当前版本(2.15.0)之前log4j的所有用法。
我尝试使用maven的“mvn dependency:tree”,使用了几个工具(dependency-check,grype(对我不起作用),syft(对我不起作用),log4j- detector),但它们只列出了那些在 pom.xml 中指定它们后生成。
但是 - 这是我关心的问题:
例如,我正在使用一个名为 hibernate-validator(Hibernate Validator Engine)的库。我确信这个引擎使用 Jboss 日志记录,而 Jboss 日志记录又使用 log4j 2.11.2,但上面的工具都没有警告我这一点。我如何找出哪些库使用 log4j?
或者外部库不会对该漏洞造成威胁吗?
请指教。