在 Spring MVC 中外部化 logback.xml

Externalize logback.xml in Spring MVC

我使用 SL4J 登录我的 Java Spring MVC Web 应用程序。我在 /src/main/resources 下有 logback.xml 文件。在我的 pom.xml 文件中,我有以下与日志记录相关的内容:

<properties>
<org.slf4j-version>1.6.4</org.slf4j-version>
<logback.version>1.0.1</logback.version>
</properties>

以及以下依赖项:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
    </dependency>
    <!-- Logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j-version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${org.slf4j-version}</version>
        <scope>runtime</scope>
    </dependency>
    <!-- logback -->
     <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
     </dependency>

     <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>${logback.version}</version>
     </dependency>
</dependencies>

现在日志记录对我来说工作正常。但现在我试图将 logback.xml 文件移到 war 文件之外,这样我就不必更改 war 文件来更改日志记录级别。我试图将文件移动到 ${catalina.base}/conf/。我无法找到一种方法来指定文件的路径,即 ${catalina.base}/conf/logback.xml。我发现了几个类似的问题,但我找不到可以使用的解决方案: logback externalization。有什么方法可以将文件移动到 tomcat 下的 conf 文件夹下并指定其路径,以便我可以将此 logback.xml 保留在 war 文件

之外

将日志记录属性放在 tomcat 配置文件夹中不是个好主意。最好将它放在应用程序 folder/war.

但是有一种方法可以通过在 spring 应用程序属性文件中设置 属性 从外部目录定位 logback.xml

例如在application.properties中添加 logging.config=file:/home/user/tomcat/conf/logback.xml