You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:24:38 UTC

[sling-org-apache-sling-tracer] 07/10: SLING-6119 - Log parameters not captured correctly in few cases

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.tracer-1.0.2
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-tracer.git

commit 7e4445dac1ed303161c443f714640f286d698a43
Author: Chetan Mehrotra <ch...@apache.org>
AuthorDate: Sat Oct 8 10:07:21 2016 +0000

    SLING-6119 - Log parameters not captured correctly in few cases
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/tracer@1763884 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/tracer/internal/JSONRecording.java | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java b/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
index 2941caf..1a7b654 100644
--- a/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
+++ b/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
@@ -241,6 +241,7 @@ class JSONRecording implements Recording, Comparable<JSONRecording> {
         final Level level;
         final String logger;
         final FormattingTuple tuple;
+        final String[] params;
         final long timestamp = System.currentTimeMillis();
         final List<StackTraceElement> caller;
 
@@ -248,6 +249,7 @@ class JSONRecording implements Recording, Comparable<JSONRecording> {
             this.level = level != null ? level : Level.INFO;
             this.logger = logger;
             this.tuple = tuple;
+            this.params = getParams(tuple);
             this.caller = getCallerData(tc);
         }
 
@@ -258,6 +260,20 @@ class JSONRecording implements Recording, Comparable<JSONRecording> {
             return Collections.emptyList();
         }
 
+        private static String[] getParams(FormattingTuple tuple) {
+            //Eagerly convert arg to string so that if arg is bound by context like
+            //session then it gets evaluated when that is valid i.e. at time of call itself
+            Object[] params = tuple.getArgArray();
+            String[] strParams = null;
+            if (params != null){
+                strParams = new String[params.length];
+                for (int i = 0; i < params.length; i++) {
+                    strParams[i] = toString(params[i]);
+                }
+            }
+            return strParams;
+        }
+
         private static String toString(Object o) {
             //Make use of Slf4j null safe toString support!
             return MessageFormatter.format("{}", o).getMessage();
@@ -276,12 +292,11 @@ class JSONRecording implements Recording, Comparable<JSONRecording> {
             jw.key("logger").value(logger);
             jw.key("message").value(tuple.getMessage());
 
-            Object[] params = tuple.getArgArray();
             if (params != null) {
                 jw.key("params");
                 jw.array();
-                for (Object o : params) {
-                    jw.value(toString(o));
+                for (String o : params) {
+                    jw.value(o);
                 }
                 jw.endArray();
             }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.