在log4j2.properties文件中,我们有以下定义来通过系统属性log.filePath接受动态文件路径
appender.file.fileName=${sys:log.filePath}
字符串
在JAVA层中,在创建Logger示例之前,我们将log. filePathSystem属性替换为实际值
System.setProperty("log.filePath" + logfilePath);
型
我们要确保如果系统属性log.filePath不可用/不可替换,那么要在java.io.tmpdir目录中创建名为app.log的日志文件。
根据Log4j 2系统属性查找文档https://logging.apache.org/log4j/2.x/manual/lookups.html,存在以下语法fileName="${sys:logPath:-/var/logs}/app.log"
以在/var/logs/app. log中创建默认日志
考虑到Unix和Windows环境,我们希望使用java.io.tmpdir系统属性而不是/var/logs目录
我尝试了以下语法的多种组合,但不起作用
fileName="${sys:logPath:-sys:java.io.tmpdir}/app.log"
型
有人能建议一下是否支持使用系统属性查找默认值吗?
1条答案
按热度按时间des4xlb01#
:-
后面的回退值被视为文字,但接受嵌套查找。所以你有两个选择${sys:logPath:-${sys:java.io.tmpdir}}
,logPath
的配置属性(${sys:logPath}
的默认回退是${logPath}
):字符串