我的应用程序使用了spring boot和log4j。 要在运行时更改日志级别,我使用了以下log4j.properties:
# Root logger option
log4j.rootLogger= ${LOGGER.LEVEL}, stdout, file
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.stdout.Threshold=ERROR
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${log.file.path}//${project.artifactId}.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.Threshold= ${LOGGER.LEVEL}
要在运行时更改日志记录级别,我使用了外部application.properties,其中我更改了LOGGER.LEVEL的值。但不幸的是,没有结果。
你能告诉我,我该怎么做才能解决这个问题?
答案 0 :(得分:0)
我认为您不需要额外的属性文件。如果要在运行时更改日志级别,只需以编程方式执行此操作。
Logger logger = Logger.getLogger(mylogger);
logger.setLevel(Level.INFO);
使用Level
,您可以根据需要保存当前日志级别:
Level previousLevel = logger.getLevel();
编辑1:
尝试这样的配置:
log4j.rootLogger=INFO(or what you want), stdout
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.stdout.Threshold=ERROR(or what you want)
# Redirect log messages to a log file, support file rolling.
log4j.logger.mylogger=${LOGGER.LEVEL},file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${log.file.path}//${project.artifactId}.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
#log4j.appender.file.Threshold= ${LOGGER.LEVEL}
您必须在代码中使用mylogger
。