簡體   English   中英

eclipse spring boot 2.x 控制台日志不打印映射的控制器信息

[英]eclipse spring boot 2.x console log does not print mapped controller info

我可以在 Web 瀏覽器中訪問控制器,但在控制台日志中看不到它的映射消息。 正常情況下,spring boot app啟動時,eclipse控制台應該會打印出映射的控制器和訪問的url,為什么我沒有看到呢?

我已經將logging.level.org.springframework.web=DEBUG添加到 application.properties 文件中,但它沒有幫助。

更新:這是我的pom.xml文件:

<modelVersion>4.0.0</modelVersion>

<groupId>com.yp</groupId>
<artifactId>BootTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>BootTest</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

應用程序啟動時的控制台日志片段

有沒有辦法在應用程序啟動時顯示映射的控制器信息?

請查看Spring Boot 2.1 發行說明#logging-refinements

Spring Framework 5.1 在處理 Web 應用程序(Spring MVC 或 Spring WebFlux)時重新審視了調試日志輸出。 如果您正在嘗試調試應用程序並且想要恢復 Spring Boot 2.0 風格的日志記錄,您應該將以下內容添加到您的 application.properties 中:

logging.level.web=debug

您可能還想將spring.http.log-request-details為 true 以記錄實際的請求詳細信息。 默認情況下,此屬性為 false,因為它可能會暴露敏感信息。

只需在 eclipse VM 參數中添加這個-Ddebug ,詳細的調試日志就會開始打印。

正如安迪·威爾金森( Andy Wilkinson)所提到的,已經進行了很多大修,尤其是在伐木方面。 提交刪除了日志。

如果您想查看此信息,可以將日志記錄級別更改為TRACE而不是回退到以前的版本

logging.level.org.springframework.web: TRACE

就像 Andy Wilkinson 的評論帖子所說的,我使用的是 spring boot 2.1,當我將 spring boot 版本更改為舊版本時,此問題不會再次發生。

如果只想查看控制器映射日志。 嘗試將 TRACE 設置為 RequestMappingHandlerMapping 以防止日志過多。

logging.level.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=TRACE

# 彈簧靴 2.2.4

我喜歡這個答案,我認為這就是我想要的。 只需查看應用程序運行時有哪些 api。

logging.level.org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping=TRACE

然后你會看到這樣;

c.u.c.s.c.SmsAuthController:
    {POST /api/sms/send-sms-auth-code}: sendSmsAuthCode(SmsCodeParam,HttpServletRequest)
2568 2020-10-08 22:09:41,227 TRACE [restartedMain] o.s.w.s.m.m.a.RequestMappingHandlerMapping/detectHandlerMethods  
    c.u.c.t.TestController:
    {POST /api/test/api-retired-warning}: testApiRetiredWithWarning()
    {POST /api/test/api-retired-error}: testApiRetiredWithError()
    {POST /api/test/api-test-only}: testApiTestOnly()、
2569 2020-10-08 22:09:41,228 TRACE [restartedMain] o.s.w.s.m.m.a

如果您想在 Eclipse 中查看信息日志,只需將以下行添加到屬性bootstrap.yml

logging:
  level:
    org.springframework: INFO

要獲得更多日志記錄, logging.level.root=DEBUG在引導程序/應用程序屬性文件中使用logging.level.root=DEBUG

暫無
暫無

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

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