You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ch...@apache.org on 2016/10/08 10:07:21 UTC
svn commit: r1763884 -
/sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
Author: chetanm
Date: Sat Oct 8 10:07:21 2016
New Revision: 1763884
URL: http://svn.apache.org/viewvc?rev=1763884&view=rev
Log:
SLING-6119 - Log parameters not captured correctly in few cases
Modified:
sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
Modified: sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java?rev=1763884&r1=1763883&r2=1763884&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java (original)
+++ sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java Sat Oct 8 10:07:21 2016
@@ -241,6 +241,7 @@ class JSONRecording implements Recording
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
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
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
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();
}