首页 > 解决方案 > 从 log4j2.xml 访问环境变量

问题描述

我正在开发一个 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>

我尝试使用 $${env:environment}/${env:environment}/${environment} 获取环境变量。什么都没有工作。它无法获取环境变量。因此,它创建了一个名为“${env:environment}”/${environment} 的文件夹,而不是“DVL”。

从java我可以毫无问题地访问我的环境变量 -

System.getProperty("环境") ==> DVL

请帮忙。

标签: spring-bootweb-applicationswebspherelog4j2was

解决方案


我已经通过使用${sys:environment}而不是解决了这个问题${env:environment}。有关更多详细信息,请查看文档logging.apache.org/log4j/2.x/manual/lookups.html


推荐阅读