使用Logback日志保存到相对路径的操作
作者:缄默大叔 时间:2021-10-11 16:42:30
说明
在使用Logback中需要保存输出日志,但是却在保存的时候路径出现问题
项目背景
1、Win7
2、Java Web + Tomcat 7.0(在D盘目录下)
3、Logback 1.1.7
案例一
Logback.xml文件配置
<!-- 路径名称 -->
<property name="log.base" value="logs" />
<!-- 保存的文件名 -->
<property name="log.fileName" value="log" />
注意:value=“logs”
如果是以这种方式配置,那么日志文件则保存到在项目启动的目录下,
即 D:\tomcat7.0\bin\logs\log.txt
案例二
Logback.xml文件配置
<!-- 路径名称 -->
<property name="log.base" value="/logs" />
<!-- 保存的文件名 -->
<property name="log.fileName" value="log" />
注意:value=“/logs”
如果是以这种方式配置,那么日志文件则保存到系统目录下,
即 D:\logs\log.txt
案例三
Logback.xml文件配置
<!-- 路径名称 -->
<property name="log.base" value="../logs" />
<!-- 保存的文件名 -->
<property name="log.fileName" value="log" />
注意:value=“../logs”
如果是以这种方式配置,那么日志文件则保存到系统目录下,
即 D:\tomcat7.0\logs\log.txt
总结
文件相对保存路径设置可分以下三种:
1. value=“logs” – 表示保存到程序运行目录,在tomcat中为bin目录
2. value=“/logs” – 表示保存到系统目录
3. value=“../logs” – 表示保存到程序运行目录的父目录
补充知识:logback-spring.xml中三种相对路径生成的日志文件的位置
logback-spring.xml中关于路径配置的三种写法:
写法1:<property name="log.path" value="logs" />
写法2:<property name="log.path" value="/logs" />
写法3:<property name="log.path" value="../logs" />
项目(路径D:\workspace\Test)启动的三种场景:
场景1:项目所在workspace在D盘,直接从eclipse中启动
场景2:打成jar包放在桌面的test文件夹下,用bat文件(java -jar Test.jar)启动
场景3:jar文件放在centOS的/test目录下,用sh文件(nohup java -jar Test.jar &)启动
场景1 | 场景2 | 场景3 | |
写法1 | D:\workspace\Test\logs\{name} | C:\Users\{user}\Desktop\logs\{name} | /test/logs/{name} |
写法2 | D:\logs\{name} | C:\logs\{name} | /logs/{name} |
写法3 | D:\workspace\logs\{name} | C:\Users\{user}\logs\{name} | /logs/{name} |
注:路径中的{user}为C盘中当前用户目录名称,{name}为配置文件中的${log.name}即日志文件名称
来源:https://blog.csdn.net/yy_wg/article/details/54847833