fluent / fluent/fluent-logger-java

Conflict with Spring cloud SpringApplication run

未关闭
#84 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
210
派生
86
PR 合并指标
30 天内没有已合并 PR

描述

Conflict with Spring cloud SpringApplication run. spring cloud because BootstrapApplicationListener.Causes Spring Application to execute many times.
and call **FluentLogger** stop. close sender, with sender is null.
then call `log(String tag, Map data, long timestamp) ` function Throw out NullPointerException?
in **FluentLoggerFactory** 58 line add this code?
```
public synchronized FluentLogger getLogger(String tagPrefix, String host, int port, int timeout, int bufferCapacity,
Reconnector reconnector) {
String key = String.format("%s_%s_%d_%d_%d", new Object[] { tagPrefix, host, port, timeout, bufferCapacity });

for (Map.Entry entry : loggers.entrySet()) {
if (entry.getValue().equals(key)) {
FluentLogger found = entry.getKey();
if(found != null) {
if(found.getSender() == null){
found.setSender(getNewSender(host, port, timeout, bufferCapacity, reconnector));
}
return found;
}
break;
}
}

FluentLogger logger = new FluentLogger(tagPrefix, getNewSender(host, port, timeout, bufferCapacity, reconnector));
loggers.put(logger, key);
return logger;
}

private Sender getNewSender( String host, int port, int timeout, int bufferCapacity, Reconnector reconnector){
Sender sender = null;
Properties props = System.getProperties();
if (!props.containsKey(Config.FLUENT_SENDER_CLASS)) {
// create default sender object
sender = new RawSocketSender(host, port, timeout, bufferCapacity, reconnector);
} else {
String senderClassName = props.getProperty(Config.FLUENT_SENDER_CLASS);
try {
sender = createSenderInstance(senderClassName, new Object[] { host, port, timeout, bufferCapacity });
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sender;
}
```

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。