动态指定logback日志输出路径

项目运行起来之后,为了方便后期对日志进行管理,所以需要能够动态的指定logback日志输出的路径,搜索全网,找到了两种办法,接下来逐一讲解一下。

  • 第一种是使用 ${} 来动态读取系统命令行参数来指定日志输出路径
<property name="log.path" value="${LOG_PATH:-.}/logs"/>

默认在项目的根目录下生成日志文件,可以通过-DLOG_HOME=""来指定日志输出路径,${LOG_PATH:-.}中的 .可以替换为任意指定路径作为默认的输出路径

  • 第二种是使用springProperty来获取到application.yml中的配置来指定输出路径
<springProperty scope="context" name="log.path" source="logging.path" defaultValue="E:/log"/>

可以读取到application.yml中配置的路径,但是会同时在defaultValue的路径中生成日志文件,如果没有defaultValue,
则同时会在项目根目录中生成一个logging.path_is_undefine日志文件,默认生成的日志文件不会随着项目日志的增加而增加,
新增的日志只会在logging.path指定路径中新增/n
造成这种现象的原因是 logback 的配置文件会比 springboot 的配置文件先加载,所以一开始logback是读取不到application.yml中的配置的。网上说将logback.xml更换为logback-spring.xml就不会出现这种情况,但是我更改过后依然是同样的情况,所以这里我还是推荐大家使用第一种方法来动态指定logback日志输出路径。

猜你喜欢

转载自www.cnblogs.com/brunchz/p/12767492.html