Sub*_*dip 8 websphere web-applications was log4j2 spring-boot
我正在开发一个 Spring Boot Web 应用程序。我正在尝试从 log4j2.xml 配置中的 Websphere 服务器访问环境变量。但不知怎的,它不起作用。
环境变量在WAS中设置在以下路径下 -
应用程序服务器 > server001 > 进程定义 > Java 虚拟机 > 自定义属性
我的 log4j2.xml 配置如下 -
<Appenders>
<RollingFile name="RollingFile"
fileName="$${env:environment}/apps/was/logs/app-logs.log"
filePattern="$${env:environment}/apps/was/logs/$${date:yyyy-MM}/app-logs-%d{-dd-MMMM-yyyy}-%i.log.gz">
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy
size="10 MB" />
<TimeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
Run Code Online (Sandbox Code Playgroud)
我尝试使用 $${env:environment} / ${env:environment}/ ${environment} 获取环境变量。什么都不起作用。它无法获取环境变量。因此,它会创建一个名为“${env:environment}”/${environment} 的文件夹,而不是“DVL”。
从java我可以毫无问题地访问我的环境变量 -
System.getProperty("环境") ==> DVL
请帮忙。
${sys:environment}
我已经通过使用而不是解决了这个问题${env:environment}
。有关更多详细信息,请浏览文档logging.apache.org/log4j/2.x/manual/lookups.html
我们遇到了同样的问题,并实施了解决方法。
我们使用 java 读取环境值并将其存储到 MDC 中(使用slf4j MDC)
并且 MDC 密钥可在log4j2.xml
例子:
MDC.put("environment", System.getProperty("environment"));
Run Code Online (Sandbox Code Playgroud)
现在,您只需编写即可访问环境{environment}
希望对你有帮助。
归档时间: |
|
查看次数: |
14954 次 |
最近记录: |