【发布时间】:2022-11-29 13:49:43
【问题描述】:
我的项目有多个模块,它们相互作用并相互依赖。我的应用程序正在运行 Log4j 2.17.2 日志生成正常。但是当我迁移到 2.18.0 时,日志停止生成。可能的错误是什么?请帮忙。 注意:我无法上传代码作为其安全工作。
我不明白这个问题,我希望日志也能在 2.18.0 上打印出来。
我申请了 -DLog4j.debug=true 我的标准输出为 2.17.2 -
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@71248c21
WARN StatusLogger Error parsing URI C:/-------project path----/log4j2-idp.xml
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger Closing FileInputStream java.io.FileInputStream@59717824
DEBUG StatusLogger Apache Log4j Core 2.17.2 initializing configuration XmlConfiguration[location=C:/-----Project path------/log4j2-idp.xml]
DEBUG StatusLogger PluginManager 'Core' found 129 plugins
DEBUG StatusLogger PluginManager 'Level' found 0 plugins
DEBUG StatusLogger Building Plugin[name=property, class=org.apache.logging.log4j.core.config.Property].
TRACE StatusLogger TypeConverterRegistry initializing.
DEBUG StatusLogger PluginManager 'TypeConverter' found 26 plugins
DEBUG StatusLogger createProperty(name="fileName", value="idp", value="idp")
DEBUG StatusLogger Building Plugin[name=properties, class=org.apache.logging.log4j.core.config.PropertiesPlugin].
DEBUG StatusLogger configureSubstitutor(={fileName=idp}, Configuration(C:/-----project path -------log4j2-idp.xml))
我在 2.18.0 之后的标准输出
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger Using configurationFactory org.apache.logging.log4j.core.config.ConfigurationFactory$Factory@345965f2
WARN StatusLogger Error parsing URI C:/-----project path ----/log4j2-tomcat.xml
DEBUG StatusLogger PluginManager 'Lookup' found 17 plugins
DEBUG StatusLogger Closing FileInputStream java.io.FileInputStream@6b53e23f
DEBUG StatusLogger Apache Log4j Core 2.18.0 initializing configuration XmlConfiguration[location=C:/----project path------/log4j2-tomcat.xml]
DEBUG StatusLogger PluginManager 'Core' found 133 plugins
DEBUG StatusLogger PluginManager 'Level' found 0 plugins
正如我注意到的,上面的标准输出日志在某些方面有所不同。 注意- log4j2-tomcat 和 log4j2-idp 是我的 appender,它们被放置在相同的位置以供使用。
有人可以找到并帮助解决错误并告诉您如何解决这个问题。
【问题讨论】:
-
欢迎来到 SO。没有人要求上传生产代码,但如果没有minimal reproducible example,我们无法帮助您,它可以 - 并且应该 - 简化为只要记录您的问题并且不包含任何其他内容(无论它是专有的还是开源的)。请查看How to Ask
-
您的“迁移”具体涉及什么?只是用 2.18.0 版本替换 log4j 2.17.2 jar?您是否使用像 maven 这样的构建工具来更改依赖项?您所有的依赖模块现在都无法登录还是只有一些?您需要提供更多有关您为迁移所做的工作的详细信息。
-
嗨 @JohnXF,我只是将 2.17.2 替换为 2.18.0。我正在使用 gradle 构建。我的所有模块都工作正常,并且正在为它们打印日志。但是只有一个模块在升级时不打印日志。
-
您确定有问题的模块在升级 JAR 之前肯定会打印日志吗?您确定该模块中没有其他更改吗?我怀疑从 2.17.2 到 2.18.0 的迁移是否对 log4j 做了任何会导致它停止记录的重大更改。我怀疑可能某些配置已更改(日志级别,或者可能是位置?),这意味着您不再看到日志。
-
嗨@PiotrP.Karwasz 我在应用-Dlog4j.debug = true 后添加了前后差异的代码。请帮忙。我无法在 2.18.0 中打印 IDP 模块的日志