我需要将所有mule日志发送到splunk,所以为此我使用了splunks Http Event collector在这里提到http://dev.splunk.com/view/event-collector/SP-CAAAE6M
为此我已将log4j2 xml文件中的appender配置为
<Http name="SPLUNK"
url="https://localhost:8088"
token="4B916A8F-C41E-4DD3-80AC-778D3E24F45C" batch_size_bytes="0"
batch_size_count="0" batch_interval="0" disableCertificateValidation="true">
<PatternLayout pattern="%m" />
</Http>
<Logger name="splunk.log4j" level="INFO">
<AppenderRef ref="SPLUNK" />
</Logger>
我在pom文件中添加了以下库
<dependency>
<groupId>com.splunk.logging</groupId>
<artifactId>splunk-library-javalogging</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
我知道这个工作我需要在/ lib / boot中添加splunk jar所以我在/ lib / boot中复制了以下jar文件
/lib/boot/splunk-1.5.0.0.jar
/lib/boot/splunk-library-javalogging-1.5.2.jar
但即使在我部署到独立服务器之后,我也会遇到以下错误,但令人惊讶的是它在Studio中运行良好,而不是在独立服务器中运行。
2017-12-11 14:26:12,771 WrapperListener_start_runner ERROR Unable to invoke factory method in class class com.splunk.logging.HttpEventCollectorLog4jAppender for element Http.
2017-12-11 14:26:12,771 WrapperListener_start_runner ERROR Null object returned for Http in Appenders.
2017-12-11 14:26:12,775 WrapperListener_start_runner ERROR Unable to locate appender "SPLUNK" for logger config "splunk.log4j"
有人知道为什么会这样吗?
答案 0 :(得分:0)
ERROR Unable to locate appender "SPLUNK" for logger config "splunk.log4j"
这意味着没有Appender
名为&#34; SPLUNK&#34;配置。确保您的log4j2.xml
包含此类配置,例如将日志输出到控制台:
<Appenders>
<Console name="SPLUNK" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %c{1} - %msg%n"/>
</Console>
</Appenders>
有关详细信息,请参阅Configuring Appenders和Appenders doc。