spring-boot - 从 log4j2.xml 访问环境变量

标签 spring-boot web-applications websphere log4j2 was

我正在开发一个 Spring Boot Web 应用程序。我正在尝试从我的 log4j2.xml 配置中的 Websphere 服务器访问环境变量。但不知何故它不起作用。

环境变量在以下路径下的 WAS 中设置 -

应用程序服务器 > server001 > 进程定义 > Java 虚拟机 > 自定义属性

environment variable image

我的 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("environment") ==> DVL

请帮忙。

最佳答案

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

关于spring-boot - 从 log4j2.xml 访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60090840/

相关文章:

java - 用于容器化 postgresql 的 Spring boot 的正确 jdbc 是什么

javascript - 如何使用 runTime 函数更新时钟?

javascript - 菜单总是在顶部和水平滚动

javascript - 在 Symfony 2 项目中使用 JQuery

java - 如何检查(替换)Websphere 8.5 使用的 MyFaces 版本

java - Web 服务器属性加载

tomcat - IBM Worklight Server 6.2 - 在 Apache Tomcat 上运行? "Timeout while waiting for the management service to start up"

Spring-boot 和 spring boot 开发工具集成未显示更新的类更改

java - 在浏览器上呈现 .csv 文件而不是下载

mysql - Spring Boot 应用程序使用 mysql 进行扩展