在Scala环境属性中添加属性
val sysProps = System.getProperties
sysProps.setProperty("current.date.time", LocalDateTime.now().toString())我可以拯救这个财产。
我尝试在log4j.properties中访问这个属性(current.date.time),如下所示
log4j.appender.file.File=C:/Users/vsami/Desktop/Demo_${current.date.time}.log
log4j.appender.file.File=C:/Users/vsami/Desktop/Demo_${env:current.date.time}.log在上面的位置生成日志文件,如Demo_.log,预期为:- Demo_2019/11/27T13:21:00.log
上面的实现不能帮助我从环境属性访问变量,并使用预期的命名约定生成日志文件。
发布于 2019-11-27 23:20:42
JVM的属性可以在VM启动时通过-D参数传递。-Dprop=value。这些属性可以通过System.getProperties接口调用读取。有关详细信息,请参阅docs。
环境变量不是在JVM引导时指定的,并且由引导环境独立于VM进行管理(可以是shell、bash等)。您不能在已运行的VM中更改环境变量。这些变量可以通过System.getenv()读取
$是log4j中的查找运算符,可用于解析前缀为env:的环境变量或前缀为main:的Main Arguments Lookup。
您可以使用main:current.date.time并按如下方式初始化值
MainMapLookup.setMainArguments(Array("--current.date.time", LocalDateTime.now().toString()));确保在初始化日志记录之前调用了MainMapLookup。
https://stackoverflow.com/questions/59069940
复制相似问题