java Logback PatternLayout类名格式问题与Sping Boot 3.0

hmtdttj4  于 12个月前  发布在  Java
关注(0)|答案(1)|浏览(61)

我想请你帮忙。我有一个小的Sping Boot 应用程序项目,版本为v2.7.1。我开始将版本更改为v3.0.6,并遇到了logback问题。在我的logback xml文件中,我使用%C{1.}作为PatternLayout,但它不起作用,我得到一个错误。当我将其替换为%C{1}时,它可以正常工作。我想使用%C{1.}模式,但不知道为什么不能使用。
提前感谢您的帮助!
logback xml中的附加器:

<appender name="Console"
              class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
            </Pattern>
        </layout>
    </appender>

字符串
错误代码:

Caused by: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.classic.pattern.LoggerConverter@5b080f3a - failed to parse integer string [1.] java.lang.NumberFormatException: For input string: "1."
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.reportConfigurationErrorsIfNecessary(LogbackLoggingSystem.java:260)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:247)
    at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
    at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:187)
    at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:332)
    ... 19 more


我尝试将%C{1.}编辑为%C{1},并且成功了,但这是在日志中格式化类名的另一种模式。

3qpi33ja

3qpi33ja1#

不要假设一个错误,直到你放弃了用户的错误。%C{1.}%C(或%class)转换字接受一个整数作为参数来缩短类名,但由于小数点的原因,您传递了一个浮点数。
该错误在错误消息failed to parse integer string [1.] java.lang.NumberFormatException: For input string: "1."中很清楚,上面的文档链接提供了定义。
删除该点,应该可以解决问题。

相关问题