[
https://issues.apache.org/jira/browse/QPID-8017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16244082#comment-16244082
]
Keith Wall commented on QPID-8017:
----------------------------------
The reason the JUL logging events that have severity lower than INFO emitted
from JE are not included in the broker's log is that the JUL
{{java.util.logging.Logger#isLoggable#isLoggable()}} which considers only
{{java.util.logging.Logger#levelValue}}. It does not consult the JUL handlers,
so Broker's J logger providers never get to get a call. The INFO default comes
from the JVM {{${JAVA_HOME}/jre/lib/logging.properties}}
I suspect the change I suggested above would have unacceptable performance
implications. The JE implementation takes care to guard detailed logging
statements but the effect of the change would be to make the
{{logger.isLoggable(logLevel)}} guards return true, making the cost of the
construction of the log message is paid even if logging is turned off.
For a general purpose solution the only solution I see is reflecting the logger
configuration from the Broker/VirtualHostLogger world into the JUL world every
time there is configuration change (or on first start-up). The algorithm would
look like this:
{code}
foreach registered JUL loggers { java.util.logging.LogManager#getLoggerNames}}
{
Get the SLF4J logger for the registered JUL logger name
// Test the logging level configured on the SLF4J logger and reflect on to
the JUL logger e.g.
if (SLF4JLogger.isDebugEnabled())
{
JULLogger.setLevel(convertSLF4JToJULLevel(DEBUG));
}
else if (SLF4JLogger.isInfoEnabled())
{
....
}
}
{code}
This would be general purpose code and would not need to know about JE. If
Qpid integrated any other component using JUL logging, this approach would work
unchanged.
> [Broker-J] [BDB] JE log events written at JUL level FINE and below not
> included in the log produced by a BrokerLogger
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: QPID-8017
> URL: https://issues.apache.org/jira/browse/QPID-8017
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Affects Versions: qpid-java-6.1, qpid-java-broker-7.0.0
> Reporter: Keith Wall
> Priority: Minor
>
> Reproduction:
> * Add {{NameAndLevel}} logger inclusion rule BrokerLogger {{file}} for source
> {{com.sleepycat.je.*}} with Level.ALL
> * Add a BDB HA VHN/VHN
> * Expected behaviour: verbose logging from JE. Actual behaviour: moderate
> logging only
> For instance, JE writes the following message at {{FINE}} which should be
> logged by the handler as {{TRACE}} but it is absent.
> {noformat}
> 2017-11-07 10:42:15,467 TRACE [Cleaner-1] (c.s.j.c.UtilizationCalculator) -
> [default] Clean file none: predicted min util is below minUtilization,
> current util min: 20 max: 20, predicted util min: 20 max: 20
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]