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