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(); } /**
