【问题标题】:log4j not using third-party appender (SumoLogic) when executing the main app via a fat jar通过胖 jar 执行主应用程序时,log4j 未使用第三方附加程序(SumoLogic)
【发布时间】:2018-04-24 18:32:54
【问题描述】:

我使用maven-assembly-plugin 插件来编译一个fat jar。我有log4j2 和我的pom.xml 中的这些依赖项:

<dependencies>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.0</version>
    </dependency>
    <dependency>
        <groupId>com.sumologic.plugins.log4j</groupId>
        <artifactId>sumologic-log4j2-appender</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency>
</dependencies>

当我在 log4j XML 配置文件中配置记录器时,我指定了 SumoAppender 和一个控制台输出附加程序。

当我通过 mvn exec:java 运行主应用程序时,SumoLogic 附加程序工作。

但是,当我编译一个 fat jar 并通过java -jar fatjar.jar 运行应用程序时,SumoLogic Appender 根本没有运行,并且没有错误输出。

我使用 Class.forName("com.sumologic.log4j.SumoLogicAppender") 检查了该类是否存在于我的应用程序中,并且该包确实存在。

有人知道怎么回事吗?

【问题讨论】:

    标签: java maven log4j


    【解决方案1】:

    我有一个非常相似的问题 - 在我的情况下 mvn camel:run 工作正常,但 java -jar 没有。

    将 sumologic 包添加到 log4j2 配置文件就可以了:

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration packages="com.sumologic.log4j">
    <Appenders>
    <SumoLogicAppender
    ....
    

    与创建自定义附加程序时相同的策略 - How to Create a Custom Appender in log4j2?

    【讨论】:

      猜你喜欢
      • 2011-08-13
      • 1970-01-01
      • 2017-01-17
      • 2020-07-20
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      相关资源
      最近更新 更多