如何将log4j.property设置为.jar位置

时间:2019-07-07 10:40:33

标签: log4j2

我正在Spring-boot应用程序中设置Log4j2。现在,我想在.jar文件的确切位置创建一个/ log目录。

这是必需的,因为我们从启动脚本启动Java应用程序,并且该配置在Windows和UNIX开发人员机器以及服务器上均应工作。

我已经尝试过:

<RollingFile name="FileAppender" fileName="./logs/mylog.log" 
             filePattern="logs/mylog-%d{yyyy-MM-dd}-%i.log">

它只是在jar开始的目录中创建一个日志文件夹。

然后我读到我应该使用.\log/mylog.log作为。\指向jar文件的目录。 但是随后,它仅创建了一个名为.\log的文件夹。

我还尝试了使用jvm参数进行配置,并使用${logFile}在log4j2.xml中调用它们。现在,创建了一个名为'${logFile}的目录。

唯一起作用的$ {}命令是log4j配置文件的目录。但这是在罐子里,这给了我一个非常无用的文件夹结构

预先感谢

1 个答案:

答案 0 :(得分:0)

一种解决方案是通过系统属性传递日志目录位置。

配置文件看起来像-

<RollingFile name="FileAppender" fileName="${sys:basePath}/mylog.log" 
             filePattern="${sys:basePath}/mylog-%d{yyyy-MM-dd}-%i.log">

现在,使用包含JAR文件的目录的绝对路径传递VM参数basePath-

java -jar myapp.jar -DbasePath=/home/ubuntu/app