Logback提供错误无法将类为'java.lang.String'的对象'3 gb'强制转换为类'ch.qos.logback.core.util.FileSize'

Koustav Ray:

我有一个springboot应用程序,当尝试使用具有groovy config的logback进行记录时,出现以下错误:

    Failed to instantiate [ch.qos.logback.classic.LoggerContext]
Reported exception:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '3 gb' with class 'java.lang.String' to class 'ch.qos.logback.core.util.FileSize'
    at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.continueCastOnSAM(DefaultTypeTransformation.java:405)
    at org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation.continueCastOnNumber(DefaultTypeTransformation.java:319)

我的常规配置文件:

import ch.qos.logback.classic.PatternLayout
import static ch.qos.logback.classic.Level.INFO

scan("60 seconds")
def LOG_PATH = "logs"
def LOG_ARCHIVE = "${LOG_PATH}/archive"



appender("RollingFile-Appender", RollingFileAppender) {
    file = "${LOG_PATH}/rollingfile.log"
    rollingPolicy(TimeBasedRollingPolicy) {
        fileNamePattern = "${LOG_ARCHIVE}/Rainbow_Notifications.log%d{yyyy-MM-dd}.log"
        maxHistory = 30
        totalSizeCap = "3 gb"
    }
    encoder(PatternLayoutEncoder) {
        pattern = "%msg%n"
    }
}


logger("com.something", INFO, ["RollingFile-Appender"])

注:我已尽力,甚至这些字符串:文件大小:3gb3 gb3GB3096mb3096 mb3096 MB

卢克·伍德沃德:

尝试更换线

    totalSizeCap = "3 gb"

    totalSizeCap = FileSize.valueOf("3 gb")

您还需要添加该行import ch.qos.logback.core.util.FileSize;

该类setTotalSizeCap方法TimeBasedRollingPolicy采用一个FileSize对象,而不是字符串。中的静态valueOf方法FileSize应进行必要的从字符串到的转换FileSize

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章