spring boot日志

日志记录当然不是一个迷人的话题,但它是一个至关重要的话题-至少对于DevOps和Ops团队而言。 尽管Web上有很多材料描述如何更改ASCII标语,但是如何有效地管理日志输出却没有太多内容。

默认情况下,Spring Boot将在控制台上输出日志,并且根本不使用任何文件。

但是,可以告诉Spring Boot登录输出文件。 在最简单的级别上,可以在application.propertieslogging.path键下轻松地配置Spring Boot放置spring.log文件的路径:

logging.path=/var/log

请注意,另一种选择是使用logging.file键,以便不仅设置文件路径而且设置文件名。

logging.file=/var/log/myapp.log

尽管这对于开发目的非常有效,但是对于Ops团队来说,解压缩最终的jar,更新application.properties文件并重新打包(对于每种不同的环境)都是不可接受的过程。

启动jar时,Spring Boot允许在命令行上作为标准系统属性覆盖打包文件(如果有)中设置的值:

java-jar-Dlogging .path = /tmp  myapp.jar

最后,在命令行上调用Spring Boot Maven插件时,也可以覆盖此值。 但是,直接使用system属性对插件不起作用将生成另一个JVM。 必须使用run.jvmArguments系统属性并将其委托给所需的值:

mvn spring-boot:run-Drun .jvmArguments ="-Dlogging.path=/tmp"

请注意,这适用于所有可用属性!