/
LoggingEventMapper.java
58 lines (48 loc) · 1.96 KB
/
LoggingEventMapper.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package io.hawt.log.logback;
import java.util.Date;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.classic.spi.ThrowableProxy;
import io.hawt.log.LogEvent;
import io.hawt.log.support.ThrowableFormatter;
public class LoggingEventMapper {
private String hostName;
public LoggingEventMapper(String hostName) {
this.hostName = hostName;
}
public LogEvent toLogEvent(LoggingEvent loggingEvent) {
LogEvent answer = new LogEvent();
answer.setClassName(loggingEvent.getLoggerName());
ThrowableProxy throwable = (ThrowableProxy) loggingEvent.getThrowableProxy();
if (throwable != null) {
ThrowableFormatter formatter = new ThrowableFormatter();
String[] stack = formatter.doRender(throwable.getThrowable());
if (stack != null) {
answer.setException(stack);
}
}
StackTraceElement[] callerData = loggingEvent.getCallerData();
if (callerData != null && callerData.length > 0) {
StackTraceElement ste = callerData[0];
answer.setFileName(ste.getFileName());
answer.setClassName(ste.getClassName());
answer.setMethodName(ste.getMethodName());
answer.setLineNumber(String.valueOf(ste.getLineNumber()));
}
Level level = loggingEvent.getLevel();
if (level != null) {
answer.setLevel(level.toString());
}
answer.setLogger(loggingEvent.getLoggerName());
String message = loggingEvent.getFormattedMessage();
if (message != null) {
answer.setMessage(message);
}
answer.setProperties(loggingEvent.getMDCPropertyMap());
answer.setSeq(loggingEvent.getTimeStamp());
answer.setTimestamp(new Date(loggingEvent.getTimeStamp()));
answer.setThread(loggingEvent.getThreadName());
answer.setHost(hostName);
return answer;
}
}