网站地图    收藏    合作   

主页 > 后端 > java >

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

来源:自学PHP网    时间:2020-10-22 09:46 作者:小飞侠 阅读:

[导读] Logback日志存放路径不统一解决方案...

今天带来Logback日志存放路径不统一解决方案教程详解

问题:

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

  • 比如 hello.jar 包放在 /aaa/bbb 目录下
  • 如果在 /aaa/bbb 目录下执行:java -jar hello.jar ,那么日志就会存放在 /aaa/bbb 目录下
  • 如果在 /aaa 目录下执行:java -jar bbb/hello.jar ,那么日志就会存放在 /aaa 目录下

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

解决过程:

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



  result-${bySecond}.log
  true
  
    %-4relative [%thread] %-5level %logger{35} - %msg%n
  

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

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

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

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

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

  问题解决!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学php网。


以上就是关于Logback日志存放路径不统一解决方案全部内容,感谢大家支持自学php网。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论