private String createJSON(LoggingEvent event) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); Map<String, Object> log = new HashMap<>(); log.put("daemon", DaemonStarter.getDaemonName()); log.put("instance", DaemonStarter.getInstanceId()); log.put("host", DaemonStarter.getHostname()); log.put("phase", DaemonStarter.getCurrentPhase().name()); log.put("timestamp", sdf.format(new Date(event.getTimeStamp()))); log.put("level", event.getLevel().toString()); log.put("source", event.getLoggerName()); log.put("message", event.getRenderedMessage()); log.put("thread", event.getThreadName()); if (event.getThrowableInformation() != null) { Throwable throwable = event.getThrowableInformation().getThrowable(); log.put("throwable", throwable.toString()); log.put("stacktrace", this.getStacktrace(throwable)); } if (event.getProperties() != null) { log.put("mdc", event.getProperties()); } StringBuilder sb = new StringBuilder(); this.addObject(sb, log); sb.append(Layout.LINE_SEP); return sb.toString(); }