【问题标题】:log4J2 to slf4j to log4j1 produces "No log4j2 configuration file found"log4J2 到 slf4j 到 log4j1 产生“找不到 log4j2 配置文件”
【发布时间】:2018-07-30 00:14:30
【问题描述】:

我们添加了使用 log4J 2.X 的库,但我们仍在使用 log4J 1.X(主要是因为我们有自己的一些 Appenders 和 Loggers 的 impl)。 有人告诉我解决方案是将 log4J 2.X 发送到 slf4j(使用 log4j-to-slf4j,版本 2.X),然后将 slf4j 发送到 log4J 1.X,使用 slf4j-log4j12,版本 1.X。

这是我刚刚所做的,但我仍然收到此消息:

ERROR StatusLogger 找不到 log4j2 配置文件。使用默认值 配置:仅将错误记录到控制台。设置系统属性 'org.apache.logging.log4j.simplelog.StatusLogger.level' 到 TRACE 到 显示 Log4j2 内部初始化日志。

我希望 slf4j 会使用 log4J 1.X 的“配置”,而 log4J 2.X 会使用 slf4j 的“配置”,所以我不需要做任何事情,除了配置 log4J 1.X,但似乎并非如此。

我现在是否必须为 log4J 2.X 复制我的 log4J 1.X 配置,或者是否有一些简单的解决方法可以解决这个问题?会不会是某种“排序”问题(什么在什么之前运行)?

【问题讨论】:

    标签: java logging log4j


    【解决方案1】:

    您需要排除对log4j2的依赖,您的库所依赖的类将由log4j-to-slf4j提供。

    【讨论】:

    • 实际上,我的错误是我在“父 pom”中添加了对 log4j-to-slf4j 的依赖项,而不是在需要它的实际应用程序的 pom 中(显然你不能已经猜到了)。不过你的回答还是有用的,我还是接受吧。
    • @SebastienDiot 我不太明白你的意思。您只是在子 pom 文件中添加 log4j-to-slf4jlog4j-over-slf4j 吗?
    猜你喜欢
    • 2014-10-18
    • 2021-03-19
    • 2017-03-15
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    相关资源
    最近更新 更多