下面列出了org.apache.logging.log4j.core.config.plugins.PluginElement#org.graylog2.gelfclient.GelfTransports 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private GelfConfiguration getGelfConfiguration() {
final InetSocketAddress serverAddress = new InetSocketAddress(server, port);
final GelfTransports gelfProtocol = GelfTransports.valueOf(protocol().toUpperCase());
return new GelfConfiguration(serverAddress).transport(gelfProtocol)
.queueSize(queueSize)
.connectTimeout(connectTimeout)
.reconnectDelay(reconnectDelay)
.sendBufferSize(sendBufferSize)
.tcpNoDelay(tcpNoDelay)
.tcpKeepAlive(tcpKeepAlive);
}
@Override
public GelfTransports convertFrom(String value) {
try {
return GelfTransports.valueOf(Strings.nullToEmpty(value).toUpperCase(Locale.ENGLISH));
} catch (IllegalArgumentException e) {
throw new ParameterException("Couldn't convert value \"" + value + "\" to GELF transport.", e);
}
}
@Override
public String convertTo(GelfTransports value) {
if (value == null) {
throw new ParameterException("Couldn't convert \"null\" to string.");
}
return value.name();
}
public Graylog2Plugin(Application app) {
final Configuration config = app.configuration();
accessLogEnabled = config.getBoolean("graylog2.appender.send-access-log", false);
queueCapacity = config.getInt("graylog2.appender.queue-size", 512);
reconnectInterval = config.getMilliseconds("graylog2.appender.reconnect-interval", 500L);
connectTimeout = config.getMilliseconds("graylog2.appender.connect-timeout", 1000L);
isTcpNoDelay = config.getBoolean("graylog2.appender.tcp-nodelay", false);
sendBufferSize = config.getInt("graylog2.appender.sendbuffersize", 0); // causes the socket default to be used
try {
canonicalHostName = config.getString("graylog2.appender.sourcehost", InetAddress.getLocalHost().getCanonicalHostName());
} catch (UnknownHostException e) {
canonicalHostName = "localhost";
log.error("Unable to resolve canonical localhost name. " +
"Please set it manually via graylog2.appender.sourcehost or fix your lookup service, falling back to {}", canonicalHostName);
}
// TODO make this a list and dynamically accessible from the application
final String hostString = config.getString("graylog2.appender.host", "127.0.0.1:12201");
final String protocol = config.getString("graylog2.appender.protocol", "tcp");
final HostAndPort hostAndPort = HostAndPort.fromString(hostString);
final GelfTransports gelfTransport = GelfTransports.valueOf(protocol.toUpperCase());
final GelfConfiguration gelfConfiguration = new GelfConfiguration(hostAndPort.getHostText(), hostAndPort.getPort())
.transport(gelfTransport)
.reconnectDelay(reconnectInterval.intValue())
.queueSize(queueCapacity)
.connectTimeout(connectTimeout.intValue())
.tcpNoDelay(isTcpNoDelay)
.sendBufferSize(sendBufferSize);
this.transport = GelfTransports.create(gelfConfiguration);
final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
rootLogger = lc.getLogger(Logger.ROOT_LOGGER_NAME);
gelfAppender = new GelfclientAppender(transport, getLocalHostName());
gelfAppender.setContext(lc);
}
public GelfTransports getTransport() {
return transport;
}
@Test
public void convertFromValidString() throws Exception {
Assert.assertEquals(GelfTransports.UDP, new GelfTransportsConverter().convertFrom("UDP"));
}
@Test
public void convertFromValidLowerCaseString() throws Exception {
assertEquals(GelfTransports.TCP, new GelfTransportsConverter().convertFrom("tcp"));
}
@Test
public void convertTo() throws Exception {
assertEquals("UDP", new GelfTransportsConverter().convertTo(GelfTransports.UDP));
}
@Override
public void start() {
super.start();
client = GelfTransports.create(gelfConfiguration);
}
private void createGelfClient() {
client = GelfTransports.create(getGelfConfiguration());
}