当前位置:主页 > 软件编程 > JAVA代码 >

Logback日志存放路径不统一解决方案

时间:2021-03-21 10:28:06 | 栏目:JAVA代码 | 点击:

问题:

  将一个应用程序打成了Jar包后,使用命令运行jar包,发现日志存放的路径并不统一:

  如何才能不同位置执行jar包,但是日志放到一个统一的目录中呢?

解决过程:

  查看logback.xml中与日志路径相关的部分如下:

<timestamp key="bySecond" datePattern="yyyyMMdd'-'HHmmss"/>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
  <file>result-${bySecond}.log</file>
  <append>true</append>
  <encoder>
    <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
  </encoder>
</appender>

  <file>result-${bySecond}.log</file>指定了存放日志的名称,是result-yyyyMMdd-HHmmss.log格式

  其实这里也可以指定路径的,比如:<file>/home/xxx/logs/result-${bySecond}.log</file>

  如果能够把这个绝对路径配置一下就好了,而且是在程序外部,这样方便了打成jar包以后也能配置
  比如:<file>${logback.home}/result-bySecond.log</file>,在外部指定{logback.home}就可以

  “随着通用日志组件转入 Slf4j,logback 也变成了默认的日志实现,像 log4j 一样,logback.xml 中也可以使用系统属性或环境变量,如 ${catalina.home}。”

  既然logback是可以使用系统属性的,那就可以使用java -D 配置系统属性啊
  如下:java -Dlogback.home="/home/xxx/logs" -jar hello.jar

  问题解决!

您可能感兴趣的文章:

相关文章