簡體   English   中英

使用 Spring 引導執行器在運行時更改駱駝日志級別

[英]Changing Camel Log level at runtime using Spring Boot Actuator

我使用 Camel 創建了一個 Spring 引導應用程序。 在一條路線中,我正在使用 Log 組件,如下所示:

        from("direct:start")
            .log(LoggingLevel.DEBUG, "com.somepackage","Request: ${body}")
            .process(myProcessor)
            .log(LoggingLevel.DEBUG, "com.somepackage","Response: ${body}");

在我的 application.yml 中,我設置了如下日志記錄:

 logging:
  level:
    com.somepackage: INFO

當我啟動應用程序時,由於它的級別較低,因此不會發生日志記錄。 使用 Spring Boot Actuator 更改級別:

 (POST)   /actuator/loggers/com.somepackage
Request:
{
    "configuredLevel": "DEBUG"
}

然后驗證更改:

     (GET)   /actuator/loggers/com.somepackage
Response:
    {
        "configuredLevel": "DEBUG",
        "effectiveLevel": "DEBUG"
    }

但是日志仍然沒有發生。 即使級別設置為 TRACE 也不會發生。 但是,如果我將應用程序文件中的日志記錄級別設置為 DEBUG,然后編譯/運行應用程序,則會發生該 Log 組件的日志記錄並且它是響應式的。 我可以使用執行器將級別設置為更高以排除或降低以包含。

Spring Boot 的標准日志記錄會響應來自執行器的日志級別更改,無論應用程序文件中設置的級別如何,但 Camel Log 組件僅在 Log 組件中設置的級別等於或高於啟動。 有人對此有想法或解決方案嗎?

我得到了同樣的錯誤並嘗試了其他一些駱駝版本。 駱駝 3.5.0 及以下版本為我工作。

編輯:我打開了一個 bugticket https://issues.apache.org/jira/browse/CAMEL-16705它將在版本 3.11.0 中修復

暫無
暫無

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

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