一、实现
–
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 可以是绝对路径,也可以是相对路径(相对于当前目录)。
四、日志的好处
除了发现和定位问题之外,日志还具有如下功能
记录用户登录日志,方便分析用户是正常登录还是恶意破解用户。
记录系统的操作日志,方便数据恢复和定位操作人。
记录程序的执行时间,方便为以后优化程序提供数据支持。
五、日志的级别
info:普通的打印信息;
debug:需要调试时候的关键信息打印;
warn:警告,不影响使⽤,但需要注意的问题;
error:错误信息,级别较⾼的错误⽇志信息;