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);

Reply via email to