我希望通过更改系统属性来实现可在多个环境中运行的单个配置.以下是一个例子:
log4j.appender.file.File=/opt/apps/${myEnvironment}/log/MyService.log
Run Code Online (Sandbox Code Playgroud)
但是,如果有人忘记设置系统属性,我想确保它仍能正常运行.有没有办法在属性文件中指定默认值?
这也许是可能的。根据 的 API 文档org.apache.log4j.PropertyConfigurator,您的变量应该首先在系统属性中查找其值,如果在那里找不到它,则应该搜索配置文件。
所有选项值都允许变量替换。变量替换的语法与 Unix shell 类似。开头“${”和结尾“}”之间的字符串被解释为键。替换变量的值可以定义为系统属性或配置文件本身。首先在系统属性中查找该键的值,如果没有找到,则在正在解析的配置文件中查找。相应的值替换 ${variableName} 序列。例如,如果 java.home 系统属性设置为 /home/xyz,则序列 ${java.home} 的每次出现都将被解释为 /home/xyz。
https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html
不过,您必须验证配置文件中设置的变量是否会覆盖系统属性。
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |