簡體   English   中英

log4j2.xml 配置未反映在 spring 引導應用程序中

[英]log4j2.xml configurations are not reflected in spring boot application

我正在嘗試使用 spring 引導設置項目。 雖然我已經定義了 log4j 的所有依賴項,並添加了 log4j2.xml 配置文件,但打印的日志沒有 xml 文件中定義的模式。 我檢查了 maven 拉取的外部庫,我看到了 logback 依賴項,它們不在我的 pom 中,我什至添加了排除項。 我正在使用 spring boot 3 和 Java 17。我也嘗試排除 spring-boot-starter-logging。 似乎沒有任何效果。

這是 pom.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.0</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.geek8080</groupId>
<artifactId>db_service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>db_service</name>
<description>DB Service for web app</description>
<properties>
    <java.version>17</java.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
            <exclusion>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
            <exclusion>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

這是 log4j2.xml 文件,我把它放在 src/main/resources 中,

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration>
<Properties>
    <Property name="logpath-location">/app/logs</Property>
    <Property name="logfile-name">db_service.log</Property>
    <Property name="archive">${logpath-location}/archive/dbservice</Property>
    <Property name="interval">10</Property>
</Properties>

<Appenders>
    <Console name="Console">
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %C.%M():%L %X - %m%n"/>
    </Console>

    <RollingFile name="RollingFileAppender" fileName="${logpath-location}/${logfile-name}"
                 filePattern="${archive}/${logfile-name}.%d{yyyy-MM-dd-HH}.gz">
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c.%M ():%L %X - %m%n"/>
        <Policies>
            <TimeBasedTriggeringPolicy/>
        </Policies>
    </RollingFile>
</Appenders>

<Loggers>
    <Logger name="com.indiantraditionalsnacks.db_service" level="DEBUG" additivity="false">
        <AppenderRef ref="Console" level="INFO"/>
        <AppenderRef ref="RollingFileAppender" level="DEBUG"/>
    </Logger>

    <Root level="INFO" includeLocation="true">
        <AppenderRef ref="Console" level="INFO"/>
        <AppenderRef ref="RollingFileAppender" level="DEBUG"/>
    </Root>
</Loggers>

我注意到您的“pom.xml”不包括org.springframework.boot:spring-boot-starter依賴項,這是核心 Spring Boot Starter。 嘗試添加它並從該依賴項中添加對“org.springframework.boot:spring-boot-starter-logging”的排除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM