Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1760824
  • 博文数量: 150
  • 博客积分: 660
  • 博客等级: 上士
  • 技术积分: 2480
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 11:39
文章分类

全部博文(150)

文章存档

2019年(4)

2018年(36)

2017年(53)

2016年(7)

2015年(3)

2014年(3)

2013年(27)

2012年(2)

2011年(1)

2006年(1)

2005年(13)

分类: Java

2017-04-11 10:28:45

springframework中使用logback 配置日志的相对目录

缘起

前几日开发同事请求在jenkins服务器创建几个日志目录,解释说因为没有相关日志目录导致构建失败,检查构建日志发现如下错误:

Logging system failed to initialize using configuration from 'classpath:logback.xml'
java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Failed to create parent directories for [/logs/a6/a6-ss-discovery/spring.log]
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(/logs/a6/a6-ss-discovery/spring.log,true) call failed. java.io.FileNotFoundException: /logs/a6/a6-ss-discovery/spring.log (No such file or directory)

从运维角度出发,把日志放到/目录是个稳定性的隐患,所以必须解决,反馈开发同事修改,开发同事是在太忙了,答应以后修改。于是有了本文。


设定目标

  • app目录下有bin、logs目录,要求日志集中存放在logs目录下面
  • 如果bin下有多个可运行app,那么logs下面创建appname的二级目录

    示例

    logs
    └── a6-ss-discovery
    ├── error.log
    ├── spring.log
    └── system.log 

修改两个文件

  • src/main/resources/application.yml修改以下两处:

name字段值修改实际名称

spring:
  application:
    name: a6-ss-discovery 

path字段值修改为相对路径logs

# Logging
logging:
  config: classpath:logback.xml
  path: ../logs/${spring.application.name}
  • src/main/resources/logback.xml 修改LOG_PATH的value为logs

    
    
    

验证

  • 运行mvn构建和测试
......
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 20.344s
[INFO] Finished at: Mon Apr 10 18:51:36 CST 2017
[INFO] Final Memory: 35M/428M
[INFO] ------------------------------------------------------------------------
  • 运行ls命令检查logs目录(略)
阅读(3834) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~