繁体   English   中英

尝试使用logback附加程序登录到Splunk

[英]Trying to log to Splunk using logback appender

我正在尝试使用splunk的logback附加程序直接在Java应用程序中记录splunk。

似乎什么都不会发生,但是当我在REST客户端中手动发出post命令时,我看到的数据已经发生了。

我也无法通过官方的splunk logback测试工作。

logback.xml

  <appender name="SPLUNK" class="com.splunk.logging.HttpEventCollectorLogbackAppender">
    <url>http://mySplunkUrl:8088/services/collector</url>
    <token>1234566789</token>
    <disableCertificateValidation>true</disableCertificateValidation>
    <batch_size_count>1</batch_size_count>
    <layout class="ch.qos.logback.classic.PatternLayout">
      <pattern>%msg</pattern>
    </layout>
  </appender>

  <root level="trace">
    <appender-ref ref="SPLUNK" />
  </root>

</configuration>

单元测试

@Test
public void splunkLogger() {
    Logger logger = LoggerFactory.getLogger(LogFactoryTest.class);
    Date date = new Date();
    String jsonMsg = String.format("{event:'CancerCenterTest'}");
    logger.info("CancerCenterTest");
    logger.info(jsonMsg);
}

这是我尝试使用的文档: http : //dev.splunk.com/view/splunk-logging-java/SP-CAAAE7M

我是否缺少明显的东西?

编辑这是我项目的链接-https: //github.com/toymachiner62/splunk-logging

问题似乎是在Splunk后台线程完成日志上传之前,单元测试JVM将退出。

Splunk的Logback适配器使用后台线程将消息批量发送到服务器。 批处理由batch_intervalbatch_size_bytesbatch_size_count参数控制。 即使它们都设置为非常低的级别,单元测试JVM也可能在完成之前退出并杀死线程。

尝试在测试方法的末尾添加睡眠

Thread.sleep(5000);

另外,由于某些错误,发送可能会失败。 通过添加以下代码片段以捕获Splunk发送方故障,可以浮出水面:

HttpEventCollectorErrorHandler.onError(new HttpEventCollectorErrorHandler.ErrorCallback() {
    public void error(final List<HttpEventCollectorEventInfo> events, final Exception ex) {
        // FIXME: Dumping stack trace to STDERR is not suitable for production use !
        ex.printStackTrace();
    }
});

请注意, Splunk HttpEventCollectorSender似乎没有设置任何HttpClient超时,因此,如果端点不可达,则连接可能需要几分钟时间才能超时,并显示一条错误消息。

编辑:事实证明, logback.xmlurl参数也存在问题。 必须指定的URL不带路径,例如http://mySplunkUrl:8088/而不是http://mySplunkUrl:8088/services/collector

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM