Kou*_*Ray 4 java logging logback spring-boot logback-groovy
我有一个springboot应用程序,当尝试使用groovy配置使用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)
Run Code Online (Sandbox Code Playgroud)
我的groovy配置文件:
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"])
Run Code Online (Sandbox Code Playgroud)
注:我已尽力,甚至这些字符串:文件大小:3gb,3 gb,3GB,3096mb,3096 mb,3096 MB
尝试更换线路
totalSizeCap = "3 gb"
Run Code Online (Sandbox Code Playgroud)
同
totalSizeCap = FileSize.valueOf("3 gb")
Run Code Online (Sandbox Code Playgroud)
您还需要添加该行import ch.qos.logback.core.util.FileSize;.
该类的setTotalSizeCap方法TimeBasedRollingPolicy 采用FileSize对象而不是字符串.静态valueOf方法FileSize应该从字符串到必要的转换FileSize.
| 归档时间: |
|
| 查看次数: |
726 次 |
| 最近记录: |