的logback 1.1.7
這是一個在 「生產」 運行:堆棧跟蹤從Exception
(實際上NoClassDefFoundError
是Error
):
Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/rolling/helper/TimeBasedArchiveRemover$ArhiveRemoverRunnable
at ch.qos.logback.core.rolling.helper.TimeBasedArchiveRemover.cleanAsynchronously(TimeBasedArchiveRemover.java:231)
at ch.qos.logback.core.rolling.TimeBasedRollingPolicy.rollover(TimeBasedRollingPolicy.java:178)
at ch.qos.logback.core.rolling.RollingFileAppender.attemptRollover(RollingFileAppender.java:204)
at ch.qos.logback.core.rolling.RollingFileAppender.rollover(RollingFileAppender.java:183)
at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(RollingFileAppender.java:224)
at ch.qos.logback.core.OutputStreamAppender.append(OutputStreamAppender.java:100)
所以我看着來源:該類ArhiveRemoverRunnable
確實存在於它應該在l上實例化的.java文件中。 231(與錯誤拼寫)...
然後我打開了可執行的JAR文件(的logback核心-1.1.7.jar):再次,文件TimeBasedArchiveRemover $ ArhiveRemoverRunnable.class存在於包,文件TimeBasedArchiveRemover.class。
這個錯誤不會經常發生:很顯然,「滾動」記錄器決定是時候清理目錄了。
任何人都知道爲什麼會發生這種情況?令人費解的是,我發現沒有其他人遇到這種情況的證據......!
由於沒有人遇到此問題,因此假設它是一個logback bug或一個包裝問題可能是錯誤的。重新包裝不會有幫助。 – Ceki
appender拋出的任何異常都是由相同的appender捕獲的,不應該達到用戶代碼。但是,這不適用於諸如NoClassDefFoundError之類的錯誤,它是java.lang.Error的一個子類。請參閱https://docs.oracle.com/javase/7/docs/api/java/lang/Error.html – Ceki
我得到的同樣的錯誤LogBack 1.1.11由vanilla Spring Frameworks maven安裝,並使用LogBack config文件在https://logback.qos.ch/manual/appenders.html中顯示「示例:使用TimeBasedRollingPolicy的RollingFileAppender的示例配置」 –