当前位置: 代码迷 >> J2EE >> log4j如何使用相对于classpath的相对路径来输出日志文件
  详细解决方案

log4j如何使用相对于classpath的相对路径来输出日志文件

热度:354   发布时间:2016-04-17 23:43:39.0
log4j怎么使用相对于classpath的相对路径来输出日志文件
输出日志到文件,我用的是相对路径,类似这种格式./xxx/test.log。结果我发现这个路径在linux下得到的不是相对class的路径,而是我启动程序的根目录,我没用使用类似tomcat这样的容器,就是直接用java -jar命令启动的程序,结果得到的路径却是我当前所在的路径,到底怎么能让它把日志放在classpath相对路径
------解决方案--------------------
引用:
Quote: 引用:

表示没看懂..

我在linux下启动程序的方式是
java -jar /usr/local/myapp/xxxxx.jar
我设定的日志文件路径是
./logs/test.log
我本来的目的是希望该文件存在的绝对路径是 /usr/local/myapp/logs/test.log
但是最后我发现这个文件的存在路径和我在哪个路径下使用java -jar命令有关,和程序本身所在的路径无关,比如我在root路径下使用java -jar命令,那么日志的路径就会在/root/logs/test.log


嗦嘎,也就是说你后面所写的地址根本没有用上对吧, 不过这个也是奇葩了...
------解决方案--------------------
这个没法,是JDK虚拟机classLoader加载的你的jar包的类,因此你的./logs/test.log路径是JDK获取到的,因此是相对于java执行路径来的
你可以在代码里面通过Test.class.getResource("");获得当前类的绝对路径,以此为基础就可以确定你日志的路径
  相关解决方案