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:11 UTC

[sling-org-apache-sling-tracer] 11/30: SLING-5459 - Recording of tracer logs

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.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-tracer.git

commit 80bc14894a73d281be5ce682944f4e31a3cd53bb
Author: Chetan Mehrotra <ch...@apache.org>
AuthorDate: Wed Feb 10 05:52:31 2016 +0000

    SLING-5459 - Recording of tracer logs
    
    Refactor to pass on the FormattingTuple so as to allow separate rendering of the logs in recording
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/tracer@1729530 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/tracer/internal/JSONRecording.java       |  4 +++-
 .../apache/sling/tracer/internal/Recording.java    |  5 ++--
 .../sling/tracer/internal/TracerContext.java       | 28 ++++++++++++++--------
 .../sling/tracer/internal/JSONRecordingTest.java   |  5 ++--
 4 files changed, 27 insertions(+), 15 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 0b103bd..8980ff9 100644
--- a/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
+++ b/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
@@ -34,6 +34,7 @@ import org.apache.sling.commons.json.JSONException;
 import org.apache.sling.commons.json.io.JSONWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.slf4j.helpers.FormattingTuple;
 
 class JSONRecording implements Recording {
     private static final Logger log = LoggerFactory.getLogger(JSONRecording.class);
@@ -59,7 +60,8 @@ class JSONRecording implements Recording {
     //~---------------------------------------< Recording >
 
     @Override
-    public void log(Level level, String logger, String format, Object[] params) {
+    public void log(Level level, String logger, FormattingTuple tuple) {
+        Object[] params = tuple.getArgArray();
         if (TracerContext.QUERY_LOGGER.equals(logger)
                 && params != null && params.length == 2) {
             queries.add((String) params[1]);
diff --git a/src/main/java/org/apache/sling/tracer/internal/Recording.java b/src/main/java/org/apache/sling/tracer/internal/Recording.java
index 7e24f14..d915474 100644
--- a/src/main/java/org/apache/sling/tracer/internal/Recording.java
+++ b/src/main/java/org/apache/sling/tracer/internal/Recording.java
@@ -21,11 +21,12 @@ package org.apache.sling.tracer.internal;
 
 import ch.qos.logback.classic.Level;
 import org.apache.sling.api.request.RequestProgressTracker;
+import org.slf4j.helpers.FormattingTuple;
 
 interface Recording {
     Recording NOOP = new Recording() {
         @Override
-        public void log(Level level, String logger, String format, Object[] params) {
+        public void log(Level level, String logger, FormattingTuple tuple) {
 
         }
 
@@ -40,7 +41,7 @@ interface Recording {
         }
     };
 
-    void log(Level level, String logger, String format, Object[] params);
+    void log(Level level, String logger, FormattingTuple tuple);
 
     /**
      * Register the {@link RequestProgressTracker} associated with
diff --git a/src/main/java/org/apache/sling/tracer/internal/TracerContext.java b/src/main/java/org/apache/sling/tracer/internal/TracerContext.java
index 4931255..47615e9 100644
--- a/src/main/java/org/apache/sling/tracer/internal/TracerContext.java
+++ b/src/main/java/org/apache/sling/tracer/internal/TracerContext.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import ch.qos.logback.classic.Level;
 import ch.qos.logback.core.helpers.CyclicBuffer;
 import org.apache.sling.api.request.RequestProgressTracker;
+import org.slf4j.helpers.FormattingTuple;
 import org.slf4j.helpers.MessageFormatter;
 
 class TracerContext {
@@ -81,12 +82,19 @@ class TracerContext {
     }
 
     public boolean log(Level level, String logger, String format, Object[] params) {
-        recording.log(level, logger, format, params);
+        FormattingTuple tuple;
+
         if (QUERY_LOGGER.equals(logger)
                 && params != null && params.length == 2) {
-            return logQuery((String) params[1]);
+            tuple = logQuery((String) params[1]);
+        } else {
+            tuple = logWithLoggerName(logger, format, params);
+        }
+
+        if (tuple != null) {
+            recording.log(level, logger, tuple);
         }
-        return logWithLoggerName(logger, format, params);
+        return tuple != null;
     }
 
     public void done() {
@@ -109,8 +117,9 @@ class TracerContext {
         }
     }
 
-    private boolean logWithLoggerName(String loggerName, String format, Object... params) {
-        String msg = MessageFormatter.arrayFormat(format, params).getMessage();
+    private FormattingTuple logWithLoggerName(String loggerName, String format, Object... params) {
+        FormattingTuple tuple = MessageFormatter.arrayFormat(format, params);
+        String msg = tuple.getMessage();
         msg = "[" + loggerName + "] " + msg;
         if (progressTracker == null) {
             if (buffer == null) {
@@ -120,16 +129,15 @@ class TracerContext {
         } else {
             progressTracker.log(msg);
         }
-        return true;
+        return tuple;
     }
 
-    private boolean logQuery(String query) {
+    private FormattingTuple logQuery(String query) {
         if (ignorableQuery(query)) {
-            return false;
+            return null;
         }
         queryCount++;
-        logWithLoggerName("JCR", " Query {}", query);
-        return true;
+        return logWithLoggerName("JCR", " Query {}", query);
     }
 
     private boolean ignorableQuery(String msg) {
diff --git a/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java b/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java
index f7c1736..159555e 100644
--- a/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java
+++ b/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java
@@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
 import ch.qos.logback.classic.Level;
 import org.apache.sling.commons.json.JSONObject;
 import org.junit.Test;
+import org.slf4j.helpers.MessageFormatter;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
@@ -41,8 +42,8 @@ public class JSONRecordingTest {
         when(request.getMethod()).thenReturn("GET");
         JSONRecording r = new JSONRecording("abc", request);
 
-        r.log(Level.INFO, TracerContext.QUERY_LOGGER, "foo bar", new Object[]{"x" , "y"});
-        r.log(Level.INFO, TracerContext.QUERY_LOGGER, "foo bar", new Object[]{"x" , "z"});
+        r.log(Level.INFO, TracerContext.QUERY_LOGGER, MessageFormatter.arrayFormat("foo bar", new Object[]{"x" , "y"}));
+        r.log(Level.INFO, TracerContext.QUERY_LOGGER, MessageFormatter.arrayFormat("foo bar", new Object[]{"x" , "z"}));
 
         r.done();
         r.render(sw);

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