【问题标题】:Spring boot 2.1.5 dont log existing endpoint [duplicate]Spring Boot 2.1.5不记录现有端点[重复]
【发布时间】:2019-08-05 16:25:34
【问题描述】:

我在 Spring Boot 应用程序中记录任何现有端点时遇到问题。 这是我的简单项目,有一个休息端点。当我在控制台中运行应用程序时,我看不到任何有关映射的日志。在较旧的 Spring Boot 版本中,Spring 总是自动记录项目中的所有现有映射。我应该配置什么以使 spring boot 记录我的端点映射,如下所示:

2019-08-05 18:22:15.317 TRACE 11435 --- [main] oswshandler.SimpleUrlHandlerMapping:映射 [/**] 到 ResourceHttpRequestHandler ["classpath:/META-INF/resources/", "classpath: /resources/", "classpath:/static/", "classpath:/public/", "/"]

这是我的示例项目https://bitbucket.org/powrseba/spring-boot-example/src/singleModule/的存储库

【问题讨论】:

  • 我已经尝试了所有这些方法,但它不起作用

标签: spring-boot


【解决方案1】:

@davidxxx 写的 Okey 是重复的。我没有写有关 Spring Boot 2.1 中默认日志配置已更改的更改的段落。

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.1-Release-Notes#logging-refinements

日志优化

Spring Framework 5.1 在处理 Web 应用程序(Spring MVC 或 Spring WebFlux)时重新访问了调试日志输出。如果您尝试调试 >application 并且想要恢复 Spring Boot 2.0 样式日志记录,则应将 >following 添加到 application.properties:

logging.level.web=debug

发布关闭:)

【讨论】:

    【解决方案2】:

    您真的需要将现有映射记录到日志吗? 有很多更有价值的替代方案可以让您访问现有的 api。

    Spring Boot 提供对Actuator 的依赖。它将公开一个名为映射的专用端点,返回在/actuator/mappings 下可访问的现有映射。

    Actuator 提供了很多功能,如健康指标、应用程序信息、记录器值、属性等。

    它与 spring 和 spring-security 完全集成。如果您从未听说过,请看一下。

    【讨论】:

    • 我不需要,但我很好奇为什么当我过去在 spring boot 2.0.0 之前通过 spring 初始化程序创建项目时,默认情况下我总是具有该功能,但现在当我在 spring boot 更高版本中创建项目时然后 2.1.0 我没有那个日志
    • 如果执行器未正确映射,如何诊断所有映射的 url?我并不是说系统地记录这些信息是一个好主意,但是在某些情况下/要修复的事情中,在 spring boot 启动后立即获取这些信息可能很有趣。总体而言,当您因为不明白为什么 URL 不起作用而必须重新启动 10 次时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2020-04-26
    • 2018-05-18
    • 1970-01-01
    • 2020-08-12
    • 2019-10-18
    • 2020-06-30
    相关资源
    最近更新 更多