From 216918728dbac2334578fea5eb25b14426d16bcb Mon Sep 17 00:00:00 2001 From: "James R. Perkins" Date: Tue, 13 Aug 2024 08:15:40 -0700 Subject: [PATCH] [94] Ensure the level is set in a privileged action if the security manager is being used. Signed-off-by: James R. Perkins --- .../logmanager/log4j/JBossStatusListener.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jboss/logmanager/log4j/JBossStatusListener.java b/src/main/java/org/jboss/logmanager/log4j/JBossStatusListener.java index b3f23ff..941b389 100644 --- a/src/main/java/org/jboss/logmanager/log4j/JBossStatusListener.java +++ b/src/main/java/org/jboss/logmanager/log4j/JBossStatusListener.java @@ -55,7 +55,8 @@ static void registerIfAbsent(final LogContext logContext) { Logger logger = logContext.getLoggerIfExists(NAME); if (logger == null) { logger = logContext.getLogger(NAME); - logger.setLevel(levelTranslator.translateLevel(StatusLogger.getLogger().getFallbackListener().getStatusLevel())); + setLogLevel(logger, + levelTranslator.translateLevel(StatusLogger.getLogger().getFallbackListener().getStatusLevel())); } StatusListener listener = logger.getAttachment(STATUS_LISTENER_KEY); if (listener == null) { @@ -120,4 +121,15 @@ private static void detach(final Logger logger) { } } -} + private static void setLogLevel(final java.util.logging.Logger logger, final java.util.logging.Level level) { + if (System.getSecurityManager() == null) { + logger.setLevel(level); + } else { + AccessController.doPrivileged((PrivilegedAction) () -> { + logger.setLevel(level); + return null; + }); + } + } + +} \ No newline at end of file