春季启动。错过/日志文件端点

时间:2017-04-27 17:00:39

标签: java spring spring-boot

我在Spring启动应用程序中遇到logfile端点问题 - 它已经错过了。 这是我的应用程序配置:

server:
  port: 8081

info:
  app:
    name: Foo Service
    component: Foo Service

secret-message: "{cipher}a702d2b5b0c6bc2db67e7d487c6142e7c23254108503d1856ff516d0a64bbd3663a2514a86647dcf8467d042abcb8a6e"

logging:
  file: "target/foo.log"

management:
  context-path: "/actuator"

spring:
  application:
    name: "foo-service"
  boot:
    admin:
      url: http://spring-boot-admin-url:9000
      client:
        health-url: http://app-url:8081/actuator/health
        management-url: http://app-url:8081/actuator
        service-url: http://app-url:8081
        metadata:
          user.name: "${security.user.name}"
          user.password:  "${security.user.password}"
      username: "${security.user.name}"
      password: "${security.user.password}"

security:
  user:
    name: name
    password: password

弹簧启动器启动器执行器版本为1.5.2。此外,/info/health端点也可以很好地运行。

3 个答案:

答案 0 :(得分:3)

你得到404(未找到)或401(未经授权)?如果是后者,请添加

endpoints:
   logfile:
      sensitive: false

否则,您可以通过将级别设置为DEBUG并搜索“logfile”来启用自动配置日志记录。这可能会为您提供一些提示,说明端点是否以及为何未启用。

logging.level.org.springframework.boot.autoconfigure.logging=DEBUG

答案 1 :(得分:2)

如果您未经授权使用401,请先阅读document

  

默认情况下,所有敏感HTTP端点都是安全的   具有ACTUATOR角色的用户可以访问它们。安全性得到执行   使用标准的HttpServletRequest.isUserInRole方法。

     

[Tip]如果需要,请使用management.security.roles属性   不同于ACTUATOR。

     

如果您正在部署应用程序   防火墙,您可能更喜欢所有的执行器端点都可以   无需验证即可访问。你可以通过改变来做到这一点   management.security.enabled属性:

     

application.properties。

     

management.security.enabled =假

答案 2 :(得分:1)

如果您得到的是404,请确保按照Endpoints(日志文件)文档中的说明在application.properties中添加logging.file或logging.path属性:

  

返回日志文件的内容(如果已设置logging.file或logging.path属性)。支持使用HTTP Range标头来检索部分日志文件的内容。

我不明白为什么接受的答案有效,但是在大多数情况下,这就是日志文件端点给出404响应的原因。