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/10/18 23:26:00 UTC
[sling-org-apache-sling-tracer] 16/49: SLING-5459 - Recording of
tracer logs
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-tracer.git
commit 486229585df8a6a353d71e0ebb077e577e0aa93f
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@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>.