Repository: airavata Updated Branches: refs/heads/lahiru/AIRAVATA-2065 c94365cf4 -> c24e90ef6
Handle arguments and string formatting Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/c24e90ef Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/c24e90ef Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/c24e90ef Branch: refs/heads/lahiru/AIRAVATA-2065 Commit: c24e90ef68d255bf46829b08d975dc0330d9088a Parents: c94365c Author: Lahiru Ginnaliya Gamathige <[email protected]> Authored: Mon Sep 26 23:34:45 2016 -0700 Committer: Lahiru Ginnaliya Gamathige <[email protected]> Committed: Mon Sep 26 23:34:45 2016 -0700 ---------------------------------------------------------------------- .../common/logging/kafka/KafkaAppender.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/c24e90ef/modules/commons/src/main/java/org/apache/airavata/common/logging/kafka/KafkaAppender.java ---------------------------------------------------------------------- diff --git a/modules/commons/src/main/java/org/apache/airavata/common/logging/kafka/KafkaAppender.java b/modules/commons/src/main/java/org/apache/airavata/common/logging/kafka/KafkaAppender.java index 6bc1c1d..37240b1 100644 --- a/modules/commons/src/main/java/org/apache/airavata/common/logging/kafka/KafkaAppender.java +++ b/modules/commons/src/main/java/org/apache/airavata/common/logging/kafka/KafkaAppender.java @@ -79,22 +79,35 @@ public class KafkaAppender extends UnsynchronizedAppenderBase<ILoggingEvent> { protected void append(ILoggingEvent event) { event.prepareForDeferredProcessing(); //todo do more elegant streaming approach to publish logs + if (!event.getLevel().equals(Level.ALL) && // OFF AND ALL are not loggable levels !event.getLevel().equals(Level.OFF)) { final IThrowableProxy throwableProxy = event.getThrowableProxy(); final LogEntry entry = throwableProxy != null ? - new LogEntry(serverId, event.getMessage(), Instant.ofEpochMilli(event.getTimeStamp()).toString(), + new LogEntry(serverId, createMessage(event), Instant.ofEpochMilli(event.getTimeStamp()).toString(), event.getLevel().toString(), event.getLoggerName(), event.getMDCPropertyMap(), event.getThreadName() != null ? event.getThreadName() : null, new Exception(throwableProxy.getMessage(), toStringArray(throwableProxy.getStackTraceElementProxyArray()) , throwableProxy.getClassName())) - : new LogEntry(serverId, event.getMessage(), Instant.ofEpochMilli(event.getTimeStamp()).toString(), + : new LogEntry(serverId, createMessage(event), Instant.ofEpochMilli(event.getTimeStamp()).toString(), event.getLevel().toString(), event.getLoggerName(), event.getMDCPropertyMap(), event.getThreadName() != null ? event.getThreadName() : null); producer.send(new ProducerRecord<>(kafkaTopic, new Gson().toJson(entry))); } } + private String createMessage(ILoggingEvent event) { + String message = event.getMessage(); + final Object[] arguments = event.getArgumentArray(); + if (arguments.length > 0) { + int maxLength = arguments.length < 3 ? arguments.length : 3; + for (int i = 0; i < maxLength; i++) { + message = event.getMessage().replaceFirst("\\{\\}", arguments[i].toString()); + } + } + return message; + } + private String[] toStringArray(StackTraceElementProxy[] stackTraceElement) { return Arrays.stream(stackTraceElement).map(StackTraceElementProxy::getSTEAsString).toArray(String[]::new);
