如何在生产环境中通过更改 application properties 文件中的属性来更改 spring boot 项目中的日志级别(使用 log4j2)

5 浏览
0 Comments

如何在生产环境中通过更改 application properties 文件中的属性来更改 spring boot 项目中的日志级别(使用 log4j2)

我正在开发一个使用Spring Boot服务(Spring Boot 2.1.7版本),我正在使用log4j2来建立日志和它们的模式:

    

    
        ${bundle:bootstrap:project.component}
        ${bundle:bootstrap:project.version}
    
    
        
            
        
    
    
        
            
        
    

我没有使用log4j2.properties。

我的问题是,我只能通过log4j2.xml更改日志级别,我已经尝试过几个Spring Boot属性,在我的application.properties中作为logging.level.root或通过承载器端点,但它们没有发挥作用。当我处于生产环境中并且需要更改日志级别时,我没有办法这样做。

有任何建议吗?

admin 更改状态以发布 2023年5月24日
0
0 Comments

我能够使用类似的配置来更改日志级别,甚至还可以配置日志的模式:

# Set everything to be logged to the console
log4j.rootCategory=TRACE, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n

也可以设置每个类别的日志级别,例如:

# Settings to quiet third party logs that are too verbose
log4j.logger.org.eclipse.jetty=WARN
log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INF
log4j.logger.org.apache.spark.sql.execution.streaming.FileStreamSource=TRACE

0