我正在以jar运行spring boot应用程序。
java -Dlogs.location=<path/to/my/logs> -jar my-app.jar
or
java -Dlogs.location=<path/to/my/logs> -jar my-app.jar --logs.location=<path/to/my/logs>
以下是log4j2.xml配置文件示例
<?xml version="1.0" encoding="UTF-8"?>
<Configuration >
<Properties>
<Property name="base.log.dir">${sys:logs.location}</Property>
</Properties>
....
</Configuration>
Spring启动应用正在创建 $ {sys:logs.location} 文件夹,而不是正确解析jvm args中的系统属性。
相同的配置文件与Spring应用程序一起正常工作。 我无法使用我的自定义log4j2.xml文件配置logs.location。任何帮助或建议表示赞赏。
我使用log4j2-spring.xml配置log4j2。
我查看了StackOverflow q's。这个答案读取属性包。但我想读取sys属性
答案 0 :(得分:1)
定义
之类的属性<Properties>
<Property name="filePathVar"> ${sys:filepath:-/logs/app.log} </Property>
</Properties>
,然后在您的xml文件中使用“ $ {filePathVar}”之类的filePathVar 并将其用于运行时参数-https://stackoverflow.com/a/37439625/5055762
注意-/logs/app.log将是默认值,如果没有将其作为运行时参数传递