代码之家  ›  专栏  ›  技术社区  ›  czolbe

log4j2不写入日志文件,也不创建它

  •  0
  • czolbe  · 技术社区  · 6 年前

    我知道这个问题已经被问过了,但是我仍然无法获得Log4j2来写入文件(文件甚至没有创建)。但它确实显示在控制台上。

    我已将log4j2.xml放在src/main/resources中:

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="INFO">
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
            </Console>
            <File name="MyFile" fileName="error.log" immediateFlush="false"
                append="false">
                <PatternLayout
                    pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
            </File>
        </Appenders>
        <Loggers>
            <Root level="all">
                <AppenderRef ref="Console" />
                <AppenderRef ref="MyFile" />
            </Root>
        </Loggers>
    </Configuration>
    

    我的main方法,它调用日志函数

    @SpringBootApplication
    public class SpringApplication1 {
    
    
        public static final Logger logger = LogManager.getLogger(SpringApplication1.class);
        public static void main(String[] args) {
    
            SpringApplication.run(SpringApplication1.class, args);
            logger.info("testing info");
            logger.error("this is an error");
    
        }
    

    我在pom.xml中有这两个依赖项

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.0</version>
      </dependency>
    
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.0</version>
      </dependency>
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Markus Pscheidt WEGSY85    6 年前

    spring-jcl 必须在类路径上。

    spring boot的默认日志记录机制是logback。

    一种方法是使用 Spring Boot Log4j starter . 要使用log4j,应排除logback:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <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>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>