【发布时间】: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") 检查了该类是否存在于我的应用程序中,并且该包确实存在。
有人知道怎么回事吗?
【问题讨论】: