当前位置: 首页 > 知识库问答 >
问题:

Spring Boot Logback springProperty。日志级别更改后SpringProperty未定义

松高歌
2023-03-14

我有Spring Boot应用程序,并在应用程序中设置。下一个变量的属性:

logging.config=file:./xxx_logback.xml
appName=myapp
appVersion=1.0

应用程序启动后正确创建日志文件。但是当我更改日志级别时,logback会创建名为“appName _ IS _ UNDEFINED-appVersion _ IS _ UNDEFINED”的新日志文件。我使用下一个回退配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
        <resetJUL>true</resetJUL>
    </contextListener>
    <!-- To enable JMX Management -->
    <jmxConfigurator/>
    
    <springProperty scope="context" name="appName" source="appName"/>
    <springProperty scope="context" name="appVersion" source="appVersion"/>

    <appender name="FILE-APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/${appName}-${appVersion}.log</file>
        <append>true</append>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>logs/${appName}-${appVersion}-%d{yyyy-MM-dd}-%i.log.zip</fileNamePattern>
            <!-- keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder>
            <charset>utf-8</charset>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="warn">
   
        <appender-ref ref="FILE-APPENDER"/>
    </root>

    <logger name="xxx.xxx" level="warn"/>

</configuration>

无法理解如何解决它。

共有1个答案

凌华奥
2023-03-14

最有可能的原因是:

https://docs.spring.io/spring-boot/docs/2.5.2/reference/htmlsingle/#features.logging.logback-extensions

这些扩展不能与 Logback 的配置扫描一起使用。如果尝试这样做,则对配置文件进行更改会导致错误。

 类似资料:
  • 我目前正在尝试降低我在java项目中使用的PDFBox 1.8.6库的日志记录级别,但失败了。基于前面的问题,我在 /src/目录中有以下log4j.properties文件。 我不确定我还遗漏了什么,因为我仍然在控制台中收到类似以下消息的垃圾邮件。 如果有一种方法可以通过编程方式更改日志级别,那么我根本不会附加到属性文件,因为我在其他任何地方都不使用log4j。我不知道它是否使用log4j。属性

  • 给定的第三方库的源代码我不能更改: 我想消除假阳性。 感谢您的反馈!

  • web-inf/jboss-deployment-structure.xml 当我在控制台启动eclipse中的服务器时,我仍然只能看到信息、日志和警告。我需要调试日志spring框架。这个配置有什么问题??

  • 以编程方式更改我的附加程序的日志级别,或者受到其他来源的影响。 亲爱的社区。 Log4J2版本为:2.12。0 我的应用程序正在使用log4j2。xml,日志级别设置为INFO。我的应用程序也在读取另一个配置文件,我想在其中为我的用户设置日志级别,例如DEBUG。 当应用程序初始化时(从log4j2.xml),我想将all的级别更改为DEBUG from second source作为示例。所以我

  • 假设您的代码正在使用一个模块,该模块使用来自该模块的的日志语句,而不是来自记录器实例的,并且您没有控制权来修改该模块正在使用中。 是否可以在不要求维护者修改代码的情况下为导入的模块自定义日志级别? 这些问题描述了一种非常简单的方法来更改特定模块的日志记录级别 如何禁用来自请求库的日志消息 Python日志记录-禁用导入模块的日志记录 下面的代码实现了所述的解决方案,只记录来自该模块的错误消息,但它

  • 我一直在尝试更改用户日志的日志级别,即出现在