[英]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.