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