From 469663b3170d96fed3dba729e6666da60a47b2eb Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Mon, 20 Mar 2023 13:08:36 +0100 Subject: Reduce log level for some loggers This is needed to reduce log level for standalone containers, where setting log level cannot be done by config sentinel (since these containers are not started by config sentinel) --- .../main/java/com/yahoo/log/VespaLogHandler.java | 25 ++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/vespalog/src/main/java/com/yahoo/log/VespaLogHandler.java b/vespalog/src/main/java/com/yahoo/log/VespaLogHandler.java index de39e603175..e51ef5be73d 100644 --- a/vespalog/src/main/java/com/yahoo/log/VespaLogHandler.java +++ b/vespalog/src/main/java/com/yahoo/log/VespaLogHandler.java @@ -2,6 +2,7 @@ package com.yahoo.log; import java.io.UnsupportedEncodingException; +import java.util.Set; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.StreamHandler; @@ -47,10 +48,10 @@ class VespaLogHandler extends StreamHandler { */ @Override public synchronized void publish(LogRecord record) { - Level level = record.getLevel(); - String component = record.getLoggerName(); + String loggerName = record.getLoggerName(); + Level level = possiblyReduceLogLevel(loggerName, record.getLevel()); - LevelController ctrl = getLevelControl(component); + LevelController ctrl = getLevelControl(loggerName); if (!ctrl.shouldLog(level)) { return; } @@ -73,12 +74,28 @@ class VespaLogHandler extends StreamHandler { closeFileTarget(); } + // Reduce log level from info level to fine level for some loggers + private Level possiblyReduceLogLevel(String loggerName, Level level) { + if (loggerName == null) + return level; + + if (Set.of("com.yahoo.vespa.spifly.repackaged.spifly.BaseActivator", + "org.eclipse.jetty.server.Server", + "org.eclipse.jetty.server.handler.ContextHandler", + "org.eclipse.jetty.server.AbstractConnector") + .contains(loggerName) + && level == Level.INFO) + return Level.FINE; + + return level; + } + LevelController getLevelControl(String component) { return repo.getLevelController(component); } /** - * Initalize the handler. The main invariant is that + * Initialize the handler. The main invariant is that * outputStream is always set to something valid when this method * returns. */ -- cgit v1.2.3