gpt4 book ai didi

java - 从 logback 配置文件中读取环境变量

转载 作者:IT老高 更新时间:2023-10-28 20:24:23 50 4
gpt4 key购买 nike

我有这个 logback.xml 文件:

<configuration debug="true" scan="true" scanPeriod="60 seconds">

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>${MY_HOME}/logs/mylog.log</File>

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logs/my.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>

<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level - %msg%n</Pattern>
</layout>

</appender>

<root level="TRACE">
<appender-ref ref="FILE"/>
</root>

</configuration>

${MY_HOME} 是一个已定义的系统变量(linux 上的 echo $MY_HOME 显示正确的路径)。

问题是 logback 似乎没有正确读取它,它将日志存储在 MY_HOME_IS_UNDEFINED/logs/my.log

我做错了什么?非常感谢!

编辑:我犯了一个错误,将 OSC_HOME 放在我真正指的是 MY_HOME 的位置。对此感到抱歉

最佳答案

与其他人所说的相反,logback documentation explicitly states “在替换期间,首先在本地范围内查找属性,然后在上下文范围内查找,然后在系统属性范围内查找第三个,在操作系统环境中查找第四个也是最后一个 ”。所以如果该属性是在环境中定义的,logback 就会找到它。

我在 Eclipse 中运行我的项目时遇到了同样的问题。如果这是您遇到的问题,可以通过转到 Run Configurations -> Environment 并将 MY_HOME 添加到环境变量来解决。

不确定为什么默认情况下它不加载 native 环境。甚至还有一个名为“将环境附加到 native 环境”的选项,这似乎对我没有任何影响。

关于java - 从 logback 配置文件中读取环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1975939/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com