Spring Boot 应用程序的默认日志记录文件

Posted

技术标签:

【中文标题】Spring Boot 应用程序的默认日志记录文件【英文标题】:Default logging file for spring boot application 【发布时间】:2017-01-02 15:33:02 【问题描述】:

我已经在 application.yml 的 spring boot 应用程序中设置了日志级别,如下所示:

logging.level.com.Myapplicationname=DEBUG

应用程序被打包并部署为 tomcat 上的战争。除此之外,我还没有设置logback.xml 来定义日志文件等。

当某些用户通过浏览器使用应用程序时,我在哪里可以看到控制台日志?

是否有框架创建的默认文件?

【问题讨论】:

【参考方案1】:

最新的spring版本有点变化,现在我们要使用了:

logging.file.name

而不是使用这个(这是旧方法)

日志记录文件

希望这会有所帮助。

【讨论】:

【参考方案2】:

您应该指定logging.filelogging.path,但不能同时指定( 当两者都指定时,logging.path 将被忽略,仅考虑 logging.file

1.使用 logging.file

您可以通过以下方式之一使用logging.file

logging.file = logfile.log                     //in current folder
logging.file = relativepath/to/logfile.log     //relative path with filename
logging.file = /fullpath/to/logfile.log        //full path with filename

在Spring Boot Documentation:

默认情况下,Spring Boot 只会登录到控制台,不会 写日志文件。如果你想写日志文件除了 控制台输出你需要设置一个 logging.file 或 logging.path 属性 (例如在您的 application.properties 中)。

在Spring Boot's how to logging doc:

如果您需要对日志记录进行的唯一更改是设置 各种记录器,然后您可以在 application.properties 中使用 “logging.level”前缀,例如 您还可以设置要登录的文件的位置(除了 控制台)使用“logging.file”。

2。使用 logging.path

您也可以使用logging.path 设置路径,这样日志文件将自动命名为spring.log

logging.path = ./                         // -> spring.log in current folder
logging.path = relativepath/to/logs       // -> relativepath/to/logs/spring.log
logging.path = /fullpath/to/logs          // -> /fullpath/to/logs/spring.log

在Spring Boot doc:

[使用 logging.path] 将 spring.log 写入指定目录。 名称可以是准确的位置,也可以是相对于当前目录的位置。

springframework.guru on Spring Boot logging:

还有一个 logging.path 属性来指定日志记录的路径 文件。如果你使用它,Spring Boot 会在 指定的路径。但是,您不能同时指定 logging.file 和 logging.path 属性在一起。如果完成,Spring Boot 将忽略 两者都有。

【讨论】:

【参考方案3】:

对于使用 spring boot 2.2.x 的用户,您需要将其放入配置文件中

logging.file.name='/var/log/app.log'

或者使用这个

logging.file.path='/var/log'

请注意,如果您使用 logging.file.path,它会将 spring.log 写入指定目录。名称可以是确切的位置,也可以是相对于当前目录的位置

【讨论】:

此处无需使用刻度,但感谢您指出 spring boot 2.2.x 中的差异。【参考方案4】:

正如 alexbt 所说,您不能同时使用这两个属性(logging.path 和 logging.file),因为 Spring Boot 会忽略这两个属性。

但您可以使用带有路径编码的 logging.file。

示例: logging.file=/path/to/logs/your_logfile.log

【讨论】:

以上是关于Spring Boot 应用程序的默认日志记录文件的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 在哪里存储其默认的日志记录设置

Spring Boot 日志记录模式

Spring Boot之logback日志最佳实践

Spring Boot - 记录日志

让你的spring-boot应用日志随心所欲--spring boot日志深入分析

spring-boot中logback日志配置