【问题标题】:Read the logback.xml from a system variable value从系统变量值中读取 logback.xml
【发布时间】:2017-10-09 12:00:18
【问题描述】:

我有一个项目,我使用 maven jar 插件构建它。对于日志记录,我正在使用 logback。我希望我的 logback.xml 不在可执行文件中。为了读取 logback.xml,我设置了一个新的环境变量我将 logback.xml 放入其中的值。如何告诉我的项目使用此变量来查找配置文件?

【问题讨论】:

    标签: java xml maven


    【解决方案1】:

    看看这本手册:

    https://logback.qos.ch/manual/configuration.html#variableSubstitution

    您可以使用如下命令:

    java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1
    

    【讨论】:

      【解决方案2】:

      你可以做这样的事情。在您的 jar (src/resources/) 中添加一个骨架 logback.xml,如下所示:

      <configuration>
          <include resource="file:${LOG_CONFIG_DIR}/logback-app.xml"/>
      </configuration>
      

      然后在启动时,您可以在 jar 外部使用 logback-app.xml,如下所示

      <included>
      
          <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{60} %mdc{applicationName} %mdc{environment}
                      %mdc{gearid} - %msg%n
                  </Pattern>
              </layout>
          </appender>
      
          <logger name="org.apache" level="ERROR"/>
      
          <root level="trace">
              <appender-ref ref="STDOUT"/>
          </root>
      
      </included>
      

      然后在开始时,您可以像这样连接外部文件:

      java ... -DLOG_CONFIG_DIR=/directory....

      【讨论】:

        猜你喜欢
        • 2022-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-22
        • 2015-03-02
        • 1970-01-01
        相关资源
        最近更新 更多