Настройка уровня журнала программно работает на одном компьютере, а не на другомJAVA

Программисты JAVA общаются здесь
Anonymous
Настройка уровня журнала программно работает на одном компьютере, а не на другом

Сообщение Anonymous »

Моя цель - программно установить уровень журнала log4j2. Он работает в моей IDE, но как только программа встроена в банку и развернута на другой машине, процедура не имеет никакого эффекта. В чем может быть проблема?LoggerContext ctx = (LoggerContext)LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
LoggerConfig rootLoggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
Level level = Level.ERROR;
rootLoggerConfig.setLevel(level);

// show all available loggers and set them to the new level:
Map loggers = config.getLoggers();
System.out.println("\nConfigured loggers:");
for (Map.Entry entry : loggers.entrySet())
{
System.out.println("Logger: " + entry.getKey() + " Level: " + entry.getValue().getLevel());
LoggerConfig loggerConfig = config.getLoggerConfig(entry.getKey());
loggerConfig.setLevel(level);
}

System.out.println("\nLog4j2 configuration file location: " +
((org.apache.logging.log4j.core.LoggerContext)LogManager.getContext(false))
.getConfiguration().getConfigurationSource().getLocation());

ctx.updateLoggers();
_log.fatal("LogLevel changed to " + newLogLevel);
_log.fatal("Current logger is " + _log.getName() + " with level " + _log.getLevel());
_log.info("You shouldn't see this");
< /code>
Вывод на My Ide Machine такой: < /p>
Configured loggers:
Logger: Level: ERROR
Logger: com.newhighs Level: INFO

Log4j2 configuration file location: /home/mark/tremendous/Bison/trunk/target/classes/log4j2.properties
2025-05-12 15:07:35.815 FATAL [main] Bison - LogLevel changed to ERROR
2025-05-12 15:07:35.816 FATAL [main] Bison - Current logger is com.newhighs.bison.Bison with level ERROR
< /code>
, в то время как в другом, это так: < /p>
Configured loggers:
Logger: Level: ERROR
Logger: com.newhighs Level: INFO

Log4j2 configuration file location: jar:file:/home/mark/bison/jar/bison-1.0.8794-SNAPSHOT-jar-with-dependencies.jar!/log4j2.properties
2025-05-12 15:08:32.844 FATAL Bison - LogLevel changed to ERROR
2025-05-12 15:08:32.844 FATAL Bison - Current logger is com.newhighs.bison.Bison with level INFO
2025-05-12 15:08:32.844 INFO Bison - You shouldn't see this
< /code>
файлы log4j2.properties идентичны, просто один находится в обычной файловой системе, другой в банке. Почему уровень журнала по-прежнему является информацией на второй машине?# Log4j2.properties of Bison
status = warn

appender.console.type = Console
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %-5p [%t] %c{1} - %msg%n

# Rotate log file
appender.rolling.type = RollingFile
appender.rolling.name = LogToRollingFile
appender.rolling.fileName = logs/bison.log
appender.rolling.filePattern = logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 10

# Log to console and rolling file
logger.app.name = com.newhighs
# put this on debug for debug level
logger.app.level = INFO
logger.app.additivity = false
logger.app.appenderRef.rolling.ref = LogToRollingFile
logger.app.appenderRef.console.ref = LogToConsole

rootLogger.level = INFO
rootLogger.appenderRef.stdout.ref = LogToConsole
< /code>
, а также для полноты: я проверил, используя JAR на машине IDE. Тот же результат, что и на другой машине. По какой -то причине это не работает, как и ожидалось при беге от банки.


Подробнее здесь: https://stackoverflow.com/questions/796 ... on-another

Вернуться в «JAVA»