63 lines
2.2 KiB
Java
63 lines
2.2 KiB
Java
package com.mycompany.myapp.config;
|
|
|
|
import ch.qos.logback.classic.AsyncAppender;
|
|
import ch.qos.logback.classic.LoggerContext;
|
|
import net.logstash.logback.appender.LogstashSocketAppender;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.inject.Inject;
|
|
|
|
@Configuration
|
|
public class LoggingConfiguration {
|
|
|
|
private final Logger log = LoggerFactory.getLogger(LoggingConfiguration.class);
|
|
|
|
private LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
|
|
|
|
@Value("${spring.application.name}")
|
|
private String appName;
|
|
|
|
@Value("${server.port}")
|
|
private String serverPort;
|
|
|
|
@Inject
|
|
private JHipsterProperties jHipsterProperties;
|
|
|
|
@PostConstruct
|
|
private void init() {
|
|
if (jHipsterProperties.getLogging().getLogstash().isEnabled()) {
|
|
addLogstashAppender();
|
|
}
|
|
}
|
|
|
|
public void addLogstashAppender() {
|
|
log.info("Initializing Logstash logging");
|
|
|
|
LogstashSocketAppender logstashAppender = new LogstashSocketAppender();
|
|
logstashAppender.setName("LOGSTASH");
|
|
logstashAppender.setContext(context);
|
|
|
|
String customFields = "{\"app_name\":\"" + appName + "\",\"app_port\":\"" + serverPort + "\"}";
|
|
|
|
// Set the Logstash appender config from JHipster properties
|
|
logstashAppender.setSyslogHost(jHipsterProperties.getLogging().getLogstash().getHost());
|
|
logstashAppender.setPort(jHipsterProperties.getLogging().getLogstash().getPort());
|
|
logstashAppender.setCustomFields(customFields);
|
|
logstashAppender.start();
|
|
|
|
// Wrap the appender in an Async appender for performance
|
|
AsyncAppender asyncLogstashAppender = new AsyncAppender();
|
|
asyncLogstashAppender.setContext(context);
|
|
asyncLogstashAppender.setName("ASYNC_LOGSTASH");
|
|
asyncLogstashAppender.setQueueSize(jHipsterProperties.getLogging().getLogstash().getQueueSize());
|
|
asyncLogstashAppender.addAppender(logstashAppender);
|
|
asyncLogstashAppender.start();
|
|
|
|
context.getLogger("ROOT").addAppender(asyncLogstashAppender);
|
|
}
|
|
}
|