簡體   English   中英

Spring Boot應用程序無法使用logback.groovy配置文件

[英]Spring Boot app having trouble with logback.groovy config file

我正在嘗試讓Spring Boot與Logback一起使用,並且遇到了我無法解決的錯誤/問題。

為了完整地重現此問題,我在GitHub上創建了一個Spring Boot Example存儲庫 ,但從本質上講,這是我的application.yml

logging:
  config: 'logback.groovy'
server:
  port: 9200
  error:
    whitelabel:
      enabled: false

和我的logback.groovy

statusListener(OnConsoleStatusListener)

def LOG_PATH = '/opt/springbootexample/logs/springbootexample'

appender('CONSOLE', ConsoleAppender) {
    encoder(PatternLayoutEncoder) {
        pattern = '%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n'
    }
}

appender('FILE', FileAppender) {
    file = "${LOG_PATH}.log"
    encoder(PatternLayoutEncoder) {
        pattern = '%msg%n'
        outputPatternAsHeader = true
    }
}

appender('ROLLING', RollingFileAppender) {
    encoder(PatternLayoutEncoder) {
        Pattern = '%d %level %thread %mdc %logger - %m%n'
    }
    rollingPolicy(TimeBasedRollingPolicy) {
        fileNamePattern = "${LOG_PATH}-%d{yyyy-MM}.zip"
        maxHistory = 30
        totalSizeCap = '1KB'
    }
}

root(INFO, ["CONSOLE", "ROLLING"])

我確保/opt/springbootexample/logs存在,我運行了chmod -R 777 /opt/springbootexample所以我的Spring Boot應用程序應該在那里創建日志文件並將其寫入就不會有問題。

在本地運行該應用程序時,沒有錯誤/異常/警告; 在控制台輸出中,一切看起來都很好。 然后,我啟動瀏覽器並將其指向http://localhost:9200 ,該瀏覽器應返回一條簡單的虛擬消息,但是什么也沒有發生。 更糟糕的是,控制台中也沒有任何反應。

唯一的提示是,在關閉應用程序后,如果轉到/opt/springbootexample/logs/springbootexample.log ,其內容為:

#logback.classic pattern: %msg%n

這告訴我也許logback.groovyFileAppender可能配置錯誤? 有什么想法/想法嗎?

您的應用程序正常工作(網頁已正確加載並顯示“ Spring Boot的問候!”),您的日志記錄配置有些奇怪。

第一個問題是您忘記將非滾動文件附加程序添加到根記錄器中。 只需將"FILE"添加到logback.groovy底部的列表中logback.groovy如下所示:

root(INFO, ["FILE", "CONSOLE", "ROLLING"])
//          ^^^^^^^

和日志工作。 否則,將初始化附加程序,並使用“怪異的標頭”創建文件(因為您選擇使用outputPatternAsHeader = true ),並且由於未選擇不附加任何內容。

因此,唯一奇怪的問題是為什么網頁無法為您加載...但是如果日志有效,也許您會獲得更多信息:)

LOG_PATH嘗試更簡單的LOG_PATH ,例如def LOG_PATH = '/tmp/foo' ,因為如果這是錯誤的,服務器將關閉,顯然該頁面將無法加載。

如果路徑指向存在且可寫的內容,則它將起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM