Spring Boot项目——log4j日志配置案例
背景
- 公司使用maven、Spring Boot搭建微服务项目,使用log4j输出日志
- Maven 3.5
- SPring Boot 2.2
项目配置
- 项目目录如下
- pom.xml配置(只显示和log4j有关的配置)
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot-starter.version}</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.github.lognet</groupId> <artifactId>grpc-spring-boot-starter</artifactId> <version>3.5.1</version> <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-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>
-
- log4j.properties
-
log4j.rootLogger=INFO,DEBUG,ERROR, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
#----------------------------文件存在项目根目录下-----------------------# #---------------------------------------------------------------------------------------------------- #输出INFO级别以上的内容到info.log中 log4j.logger.INFO=INFO log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender log4j.appender.INFO.File = logs/supersiver/objects/info.log log4j.appender.INFO.Threshold = INFO log4j.appender.INFO.Append = true log4j.appender.INFO.layout = org.apache.log4j.PatternLayout log4j.appender.INFO.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #----------------------------------------------------------------------------------------------------- #输出DEBUG 级别以上的日志到debugger.log log4j.logger.DEBUG=DEBUG log4j.appender.DEBUG = org.apache.log4j.DailyRollingFileAppender log4j.appender.DEBUG.File = logs/supersiver/objects/debugger.log log4j.appender.DEBUG.Threshold = DEBUG log4j.appender.DEBUG.Append = true log4j.appender.DEBUG.layout = org.apache.log4j.PatternLayout log4j.appender.DEBUG.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n #----------------------------------------------------------------------------------------------------- #输出ERROR 级别以上的日志到error.log log4j.logger.ERROR=ERROR log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender log4j.appender.ERROR.File =logs/supersiver/objects/error.log log4j.appender.ERROR.Threshold = ERROR log4j.appender.ERROR.Append = true log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout log4j.appender.ERROR.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
-
拓展
- Spring Boot本身就内置了日志功能,使用的是LogBack,所以我们想要使用log4j作为日志输出的话,需要在pom.xml中将Spring Boot内置的日志LogBack排除,否则很容易和log4j产生冲入,导致项目报错
分类:
Spring Boot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」