Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Boot-log4j2.properties创建日志文件,但不在文件中写入日志_Java_Maven_Spring Boot_Log4j2 - Fatal编程技术网

Java Spring Boot-log4j2.properties创建日志文件,但不在文件中写入日志

Java Spring Boot-log4j2.properties创建日志文件,但不在文件中写入日志,java,maven,spring-boot,log4j2,Java,Maven,Spring Boot,Log4j2,我在springboot应用程序中使用了log4j2.properties文件。正在创建日志文件,但未将日志写入该文件 详情如下: log4j2.properties POM.XML 日志出现在控制台中,但没有写入文件,因为我没有发现问题 奇怪的是,父包记录器“logger enabled:Entering main\n\n”被写入文件,而另一个父记录器“****Demo Application Started*******”没有写入文件,如上面所示的代码。并且还检查了子包,即com.java.

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

详情如下:

log4j2.properties POM.XML 日志出现在控制台中,但没有写入文件,因为我没有发现问题

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

还发现控制台日志如下所示:

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

如果c.j.c.e.作为未写入文件的日志中类名的前缀出现,为什么


我可能做错了什么。任何人都可以在这方面提供帮助。

使用Spring Boot,您可以在
应用程序中指定
log4j2.properties
。properties

logging.config=src/main/resources/log4j2.properties

在springframework.guru教程之后,我也面临这个问题。在搜索SpringBoot文档之后,我用这些依赖项配置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>

org.springframework.boot
弹簧靴起动器
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
spring-boot-starter-log4j2
并添加


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

似乎还需要将log4j设置为标准apache日志。一般来说,它使用logback。所以我不得不补充一句

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

org.springframework.boot
弹簧靴起动器
org.springframework.boot
spring启动程序日志记录


到my pom.xml

如下更改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>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</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>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</dependency>

org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
回归经典
org.springframework.boot
spring-boot-starter-log4j2
org.springframework.boot
弹簧靴起动器
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
回归经典
请注意,建议使用log4j2.xml而不是log4j2.properties。

Spring引导支持日志配置,您可以从

首先,您需要排除spring引导日志记录

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

org.springframework.boot
弹簧靴起动器
org.springframework.boot
spring启动程序日志记录
org.springframework.boot
spring-boot-starter-log4j2

然后在
src/main/resources

中添加
log4j2.json
log4j2.xml
log4j2.yaml
不,即使在上面的application.properties中添加了它也不起作用,我看到一些博客,如果我们使用的是log4j2的2.4更高版本,那么也不需要映射。如果文件名为log4j2.properties,则它将自动拾取并执行。谢谢@Ashraf SarhanBetter logging.config=classpath:log4j2.xml您可以尝试使用log4j2-spring.xml作为spring文档的建议进行配置吗?我们的要求是使用属性文件开发日志记录,因此,基于此
https://springframework.guru/log4j-2-configuration-using-properties-file/
。我找不到到底是什么问题。感谢@Jose A.MataránDid您试图将日志名称更改为没有路径的名称吗?是
property.filename=C:/Logs吗?
@Jose A.Mataránput property.filename=logsWard:如果没有
logging.config
属性,文件似乎无法正确加载(我说得对,因为日志文件是创建的,但日志没有写入其中)
<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>
        <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>org.springframework.boot</groupId>
                <artifactId>logback-classic</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</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>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>logback-classic</artifactId>
        </exclusion>
    </exclusions>
</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>