0
我需要使用Java8運行時登錄到AWS Lambda的splunk。它使用spring框架,並將logback splunk appender添加到項目中。沒有錯誤,日誌似乎沒有顯示在splunk中。 splunk管理員提到在splunk服務器上沒有收到任何請求。當我嘗試手動調用REST API時,日誌顯示爲splunk。所以從AWS Lambda到分組服務器的連接性是好的。 splunk appender似乎以異步方式調用API,並且在AWS Lambda代碼的末尾添加了50秒的休眠時間,以查看在異步步驟完成之前VM是否退出問題。沒有運氣。我如何進一步調試?splunk logback/log4j appender似乎沒有記錄splunk
代碼段: -
public class LambdaApp implements RequestHandler<String, Object>
{
private static final Logger LOGGER = LoggerFactory.getLogger(LambdaApp.class);
private static final Logger SPLUNK_LOGGER = LoggerFactory.getLogger("splunk.logger");
@Override
public Object handleRequest(String event, Context context)
{
SPLUNK_LOGGER.info("AWS Lambda start");
try {
Thread.sleep(50000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
return "handled";
}
Maven的依賴性: -
<dependency>
<groupId>com.splunk.logging</groupId>
<artifactId>splunk-library-javalogging</artifactId>
<version>1.5.2</version>
</dependency>
的logback配置: -
<appender name="http" class="com.splunk.logging.HttpEventCollectorLogbackAppender">
<url>https://a.b.c.d:8088</url>
<token>valid-token</token>
<disableCertificateValidation>true</disableCertificateValidation>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>{%msg}</pattern>
</layout>
</appender>
<logger name ="splunk.logger" level="DEBUG">
<appender-ref ref="http" />
</logger>
我不認爲的Thread.Sleep足以刷新一個的logback異步appender。另外,當lambda結束時,不會向JVM發送中斷,因此關閉掛接不起作用。也許交換到同步appender。 –