springboot 日志 logging.file.name、logging.file.path和actuator/logfile
首先对 logging.file.name 和 logging.file.path 进行一下说明,但是它俩的区别并不是本文的重点。1、logging.file.name 设置具体输出的日志名称,可以是绝对路径或者基于当前运行目录的相对路径,例如:logging.file.name=app.log、logging.file.name=/var/log/hello-service/app.log2、l
首先对 logging.file.name
和 logging.file.path
进行一下说明,但是它俩的区别并不是本文的重点。
1、logging.file.name
设置具体输出的日志名称,可以是绝对路径或者基于当前运行目录的相对路径,例如:logging.file.name=app.log
、logging.file.name=/var/log/hello-service/app.log
2、logging.file.path
设置输出的日志被写入到的目录,默认文件名为 spring.log
,例如:logging.file.path=/var/log/hello-service
3、如果你两个都同时设置,则以 logging.file.name
为准。
本文重点,是推荐使用 logging.file.name
,原因是因为这里涉及到另外一个知识点,那就是 spring 的 actuator 中的 logfile 接口(例如:http://localhost:8080/hello-service/actuator/logfile 可以直接获取日志文件,比较不错的是它还支持使用 HTTPRange
头来检索日志文件的部分内容)。
如果你只设置了 logging.file.name
,不论你实际的文件名设置为什么,这个接口都可以正常获取日志文件(因为接口它能明确知道日志文件的位置路径)。
如果你只设置了 logging.file.path
,并且没有在自定义的 logback.xml 文件重新定义输出的具体日志文件的名称(也就是仍然使用默认的spring.log),那么 logfile 接口也是能正常获取日志文件,因为它是按照默认文件 spring.log 获取日志的。但是但凡你在 logback.xml 中重新定义了输出的日志文件名(例如输出的日志文件为 hello-service.log),则你使用 actuator/logfile 接口就会或得一个404,因为此时框架并不知道你的真实日志文件叫什么,它去读取 spring.log 又读不到(因为你改名了)。
so,建议直接使用 logging.file.name
,清晰明了。
(END)
更多推荐
所有评论(0)