spring boot 项目中使用log4j打印日志到Redis(详解)

Log4j 打印日志到Redis

依赖详解:
1.Log4j依赖:
Spring boot 默认是使用logback来进行日志记录的,如果直接使用log4j依赖会有冲突,所以先要exclusion logback的依赖,再导入log4j:
源码:
spring boot 项目中使用log4j打印日志到Redis(详解)
2.RedisAppender 关键依赖:
log4j是可以将日志直接写入到Redis中的,这样我们导入ELK就会方便很多。
https://github.com/ryantenney/log4j-redis-appender/

源码:
spring boot 项目中使用log4j打印日志到Redis(详解)
3.log4j.properties编写
必须将该文件放到Springboot resources根目录下才能被识别,项目结构如下:
spring boot 项目中使用log4j打印日志到Redis(详解)
log4j.properties文件内容:
# LOG4J
log4j.rootLogger=INFO, redis,stdout,file
# 写入 file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=’-‘yyyy-MM-dd’.log’
#打印到本地
log4j.appender.file.File=D://API/test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %p [%c]: %m%n

**#写入redis
#RedisAppender类导入**
log4j.appender.redis=com.github.log4j.RedisAppender
#log4j输出格式控制器
log4j.appender.redis.layout=org.apache.log4j.PatternLayout
log4j.appender.redis.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} [%1] %m%n
log4j.appender.redis.layout.logFormatFeature=com.github.format
log4j.appender.redis.layout.dateFormatter=yyyy-MM-dd’T’HH:mm:ss.SSS’+0800’
#Redis host地址
log4j.appender.redis.host=127.0.0.1
#Redis 端口
log4j.appender.redis.port=6379
#key 名称
log4j.appender.redis.key=log4j-log
#log级别
log4j.appender.redis.Threshold=INFO
#生成log到db1库
log4j.appender.redis.dbIndex=1

### 输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} %m at %l%n

4.项目中使用:
编写controller:
spring boot 项目中使用log4j打印日志到Redis(详解)
访问localhost:8080/hi

查找日志:
(1)Console:
spring boot 项目中使用log4j打印日志到Redis(详解)
(2)D://API/test.log
spring boot 项目中使用log4j打印日志到Redis(详解)
(3)Redis:
spring boot 项目中使用log4j打印日志到Redis(详解)