我正在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配置文件的目录。但这是在罐子里,这给了我一个非常无用的文件夹结构
预先感谢
答案 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