SpringBoot 日志输入到文件中

实现

springboot 项目默认只把日志输出到控制台,现在需要输出到指定的日志文件 /var/logs/dg/foo/foo.log。 只要一条语句:

logging:
  file:
    name: "/var/logs/dg/foo/foo.log"

原理 springboot 所有内部日志都使用 common logging 输出,但未限定具体的日志实现。 springboot 对 Java Util Log、Log4j2、Logback 提供默认配置,开发者可以选择其中一个,开箱即用, springboot 默认配置把日志输出到控制台。

若是使用 springboot starter 创建的项目,springboot 选择 Logback 作为日志实现。 且恰当配置了 logback 的日志路由,确保任何使用 Java Util Logging, Commons Logging, Log4J, 或 SLF4J 的库都可以正常工作。

文件输出 默认,springboot 只把日志输出到控制台,不写入日志文件。通过配置 logging.file.name 和 logging.file.path 属性(比如在application.properties文件中设置)可以写日志到文件中。

不指定 logging.file.name 也不指定 logging.file.path:仅输出到控制台 指定 logging.file.name 但不指定 logging.file.path:输出到控制台以及 logging.file.name 指定的日志文件中。logging.file.name 可以是绝对路径,也可以是相对路径(相对于当前目录)。 不指定 logging.file.name,而指定 logging.file.path: 输出到控制台以及 ${logging.file.path}spring.log。logging.file.path 可以是绝对路径,也可以是相对路径(相对于当前目录)。 PS:同时指定二者,效果与 2 等同。

经验分享 程序员 微信小程序 职场和发展