Log4j2没有在Linux中使用Spring Boot创建日志文件

时间:2019-01-10 05:55:31

标签: spring spring-boot logging log4j2

我正在使用Log4j2通过Spring Boot进行日志记录,但是它没有创建日志文件。下面给出的是我对Log4j2的配置以及我添加的依赖项。

Log4j2配置-

    <?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%style{%d{ISO8601}}{black} %highlight{%-5level }[%style{%t}{bright,blue}] %style{%C{1.}}{bright,yellow}: %msg%n%throwable" />
        </Console>

        <!-- File Appender -->
        <File name="File" fileName=".logs/app.log">
          <PatternLayout pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n" />
        </File>
    </Appenders>

    <Loggers>
        <!-- LOG everything at INFO level -->
        <Root level="info">
            <AppenderRef ref="Console" />
            <AppenderRef ref="File" />
        </Root>

        <!-- LOG "com.baeldung*" at TRACE level -->
        <Logger name="com.ams" level="trace">
            <AppenderRef ref="File" />
        </Logger>
    </Loggers>

</Configuration>

Pom.xml

<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>
        </exclusions>
    </dependency>

    <!-- Add Log4j2 Dependency -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

我需要添加其他配置或依赖项吗?因为根据Web上的博客,log4j2应该使用上面提供的配置创建日志文件。

2 个答案:

答案 0 :(得分:0)

也许this链接会为您提供帮助。 在我的情况下,我必须在pom xml中排除spring boot startet日志记录,因为否则默认的日志记录logback处于活动状态,并且不会使用log4j。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

答案 1 :(得分:0)

可能已经晚了,但是无论如何还是要回答这个问题。我在pom中添加了spring-boot-starter-log4j2依赖性,并排除了spring-boot-starter-logging依赖性。另外,值得赞扬的是@medTech的回答,因为它使我尝试了不同的解决方案。
请注意,我使用的是 spring boot 2.2.6.RELEASE 未经1.x版本的测试

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