我使用maven-assembly-plugin
插件编译胖罐。我在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和一个控制台输出appender。
当我通过mvn exec:java
运行主应用时,SumoLogic appender可以工作。
然而,当我编译一个胖jar并通过java -jar fatjar.jar
运行应用程序时,SumoLogic Appender根本不运行,并且没有输出错误。
我使用Class.forName("com.sumologic.log4j.SumoLogicAppender")
检查了我的应用程序中是否存在该类,并且该包确实存在。
有谁知道发生了什么事?
答案 0 :(得分:0)
我有一个非常类似的问题 - 在我的情况下mvn camel:运行正常,但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?