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

joscorbe pushed a commit to branch OAK-11541
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 9e7885434de44c6ed57848317ce988790507768f
Author: Jose Cordero <[email protected]>
AuthorDate: Tue Mar 4 10:22:57 2025 +0100

    OAK-11541: Reduce logQueryExplain to only happen if Trace logs are enabled.
---
 .../document/mongo/MongoVersionGCSupport.java      | 34 +++++++++-------------
 1 file changed, 14 insertions(+), 20 deletions(-)

diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
index 5c36b868ac..7fb8b62ae1 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java
@@ -197,10 +197,9 @@ public class MongoVersionGCSupport extends 
VersionGCSupport {
     }
 
     /**
-     * Logs an explain of a mongo query. If log level is INFO it does it 
one-lined,
-     * if log level is DEBUG it does it pretty print multi-lined.
+     * Logs an explain of a mongo query if trace is enabled
      *
-     * This is done once every 24h of livetime of this particular object.
+     * This is done once every 24h of lifetime of this particular object.
      *
      * @param logMsg the log message to use - should contain two "{}" for the 
hint
      *               and the explain json
@@ -209,24 +208,19 @@ public class MongoVersionGCSupport extends 
VersionGCSupport {
      * @param hint   the hint for the query, or null
      */
     private void logQueryExplain(String logMsg, @NotNull Bson query, Bson 
hint) {
-        final long timeSinceLastLog = System.currentTimeMillis() - 
lastExplainLogMs;
-        if (timeSinceLastLog < EXPLAIN_LOG_INTERVAL_MS) {
-            // then don't log
-            return;
-        }
-        final BasicDBObject explainResult = 
MongoUtils.explain(store.getDatabase(),
-                getNodeCollection(), query, hint);
-        final BasicDBObject winningPlan = 
MongoUtils.getWinningPlan(explainResult);
-        final BasicDBObject result = winningPlan == null ? explainResult : 
winningPlan;
-        if (LOG.isDebugEnabled()) {
-            // if log level is DEBUG, let's do a pretty print
-            String prettyPrinted = JsopBuilder.prettyPrint(result.toJson());
-            LOG.debug(logMsg, hint, prettyPrinted);
-        } else {
-            // otherwise let's just do a compact print
-            LOG.info(logMsg, hint, result);
+        if (LOG.isTraceEnabled()) {
+            final long timeSinceLastLog = System.currentTimeMillis() - 
lastExplainLogMs;
+            if (timeSinceLastLog < EXPLAIN_LOG_INTERVAL_MS) {
+                // then don't log
+                return;
+            }
+            final BasicDBObject explainResult = 
MongoUtils.explain(store.getDatabase(),
+                    getNodeCollection(), query, hint);
+            final BasicDBObject winningPlan = 
MongoUtils.getWinningPlan(explainResult);
+            final BasicDBObject result = winningPlan == null ? explainResult : 
winningPlan;
+            LOG.trace(logMsg, hint, result);
+            lastExplainLogMs = System.currentTimeMillis();
         }
-        lastExplainLogMs = System.currentTimeMillis();
     }
 
     /**

Reply via email to