java - Spring Boot - log4j2.properties 创建日志文件但不将日志写入文件

标签 java maven spring-boot log4j2

我在 springboot 应用程序中使用了 log4j2.properties 文件。正在创建日志文件,但日志未写入文件。

详情如下:

log4j2.properties

name=PropertiesConfig
property.filename = C:/Logs
appenders = console, file

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/app.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

loggers=file
logger.file.name=com.java.app //Parent Package name for the application 
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

POM.XML

<!-- Logging -->
        <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>

         <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.1</version>
    </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.1</version>
    </dependency>

DemoApplication.java

package com.java.app;

    @SpringBootApplication
    public class DemoApplication extends SpringBootServletInitializer {

      private final static Logger log = LogManager.getLogger(DemoApplication.class);

      @Override
      protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

        return application.sources(DemoApplication.class);
      }

      public static void main(String[] args) {

        log.info("Logger enabled: Entering main \\n\\n");
        SpringApplication.run(DemoApplication.class, args);
        log.info("**** Demo Application Started *****");

      }

    }

日志出现在控制台中,但没有写入文件,因为我没有遇到问题。

奇怪,父包记录器“Logger enabled: Entering main\n\n”被写入文件,而另一个父记录器“**** Demo Application Started *****”没有写入文件如上所示的代码。并且还检查了子包,即 com.java.app.endpoint 记录器,即使那些也没有写入文件。

并且还确定了控制台日志是这样的

2018-08-03 12:55:18.302 INFO 11440 --- [nio-8088-exec-1] c.j.c.e.Classname:记录器消息

如果 c.j.c.e.作为日志中类名的前缀那些没有写入文件为什么?

我可能做错了什么。谁能帮忙解决这个问题。

最佳答案

按照 springframework.guru 上的教程,我也遇到了这个问题。在搜索 spring boot 文档后,我用这些依赖项配置了我的 pom.xml

<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>

并添加 application.properties 文件中的 logging.config=src/main/resources/log4j2.properties。之后,当我运行应用程序时,我可以看到日志出现在我的日志文件中。

关于java - Spring Boot - log4j2.properties 创建日志文件但不将日志写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51649986/

相关文章:

java - 找不到 org.apache.flink.api.common.serialization.DeserializationSchema 的类文件

android - Gradle不下载链接到 Artifact 的依赖项

spring-boot - 使用自定义 Gson 覆盖 Spring-Boot 的 GsonAutoConfiguration

java - Spring的application.properties中添加环境变量

spring - Elasticsearch和Spring兼容性(2019年3月)

java - 如何在Java中的特定索引处分割字符串?

java - 创建一个 YUVFormat 实例

Java - 根据多个值过滤列表

java - 使用与除以 2 相反的按位运算来查找数组的中位数是否有优势?

java - MongoDB 身份验证和 Apache Camel 的问题