【发布时间】:2014-08-05 18:46:57
【问题描述】:
我的公司有一个环境管理工具,使您能够以 Java 编程方式从环境中查找属性。我想利用这个工具来配置 logback。例如,假设我有一个如下的 logback.xml(特别是文件 appender 部分):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- console appender -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd/HH:mm:ss.SSS} [%thread] %-5level %logger{20}: %msg%n</pattern>
</encoder>
</appender>
<!-- file appender -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${LOG_FILE:-/default/log/file/path</file>
<encoder>
<pattern>%d{yyyy-MM-dd/HH:mm:ss.SSS} [%thread] %-5level %logger{20}: %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
所以,在这种情况下,我想从环境(或操作系统,如果你愿意的话)中查找 LOG_FILE 属性,并在 logback 加载 logback.xml 之前将其传递给 logback,以便它知道值的LOG_FILE。那么,我该如何实现呢?顺便说一句,我知道如何以编程方式定义文件附加程序,但这不是我想要的。
非常感谢。
【问题讨论】:
-
使用标准的 Logback Groovy 支持可能是最简单的方法。