spring-boot2.x控制台日志不打印映射的控制器信息



我可以在web浏览器中访问控制器,但在控制台日志中看不到它的映射消息。通常,当春季启动应用程序启动时,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发行说明#记录的改进

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

最新更新