logback-more-appenders
logback-more-appenders copied to clipboard
DataFluentAppender generates new timestamp instead of event's time
Why does DataFluentAppender generates brand new timestamp?
Probles arises when AsyncAppender thread not as fast as we desire. With some network delay or queue problems elastic's timestamp becames significantly later then real log event.
protected void append(E event) {
Map<String, Object> data = createData(event);
if (isUseEventTime()) {
fluentLogger.log(getLabel() == null ? getTag() : getLabel(), data, System.currentTimeMillis() / 1000);
} else {
fluentLogger.log(getLabel() == null ? getTag() : getLabel(), data);
}
}
I can create PR with changes like that, is it useful for this repo?
protected void append(E event) {
Map<String, Object> data = createData(event);
if (isUseEventTime()) {
fluentLogger.log(getLabel() == null ? getTag() : getLabel(), data, getTimestamp(event) / 1000);
} else {
fluentLogger.log(getLabel() == null ? getTag() : getLabel(), data);
}
}
protected long getTimestamp(E event) {
if (event instanceof ILoggingEvent) {
return ((ILoggingEvent) event).getTimeStamp();
}
return System.currentTimeMillis();
}
- it looses milliseconds cause of division, why so?
@discorpsee I think, you are right. That PR would be great! Thanks!