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>.