时间:2021-05-20
前言
Spring Boot 默认使用Logback,来打印日志,这里还想说的SLFJ(Simple Logging Facade for Java),它们之间的关系,一张图,说明一切:
maven 配置
<!--use log4j2 property--> <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> <!--flume log4j appender--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-flume-ng</artifactId> <version>2.6</version> </dependency>log4j2.xml 配置
Log4j2 提供非常丰富的Appender,比如CassandraAppender,AsyncAppender,我们这里配置了简单的Flume Appnder,Failover Appender.
<?xml version="1.0" encoding="UTF-8"?><Configuration monitorInterval="60"> <Properties> <Property name="source">api-web</Property> <Property name="log-pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{userId}] [%t] [%-5level] %c{1.}@%M%L - %m%n</Property> <!--get product dynamic property--> </Properties> <Appenders> <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout> <Pattern>${log-pattern}</Pattern> </PatternLayout> <Policies> <TimeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="250 MB"/> </Policies> </RollingFile> <Flume name="eventLogger" compress="false" type="avro" ignoreExceptions="false"> <Agent host="192.168.31.115" port="4444"/> <Agent host="127.0.0.1" port="4444"/> <PatternLayout> <pattern> <pattern>${log-pattern}</pattern> </pattern> </PatternLayout> </Flume> <Console name="Console-Appender" target="SYSTEM_OUT" ignoreExceptions="false"> <PatternLayout> <pattern>${log-pattern}</pattern> </PatternLayout> </Console> <!-- 主要Apeender失败的时候使用备用Appender--> <Failover name="Failover" primary="eventLogger"> <Failovers> <AppenderRef ref="RollingFile"/> </Failovers> </Failover> </Appenders> <Loggers> <!--在需要同时打印文件和发送至flume的时候使用--> <!--<Logger name="" level="info" additivity="false">--> <!--<AppenderRef ref="RollingFile"/>--> <!--</Logger>--> <Root level="info"> <AppenderRef ref="Console-Appender"/> <AppenderRef ref="Failover"/> </Root> </Loggers></Configuration>总结
如果遇到识别不了log4j2.properties/xml,可以在application.properties,中指定 logging.config=classpath:log4j2.properties/xml
参考
https://springframework.guru/introducing-log4j-enterprise-class-logging/
http://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
介绍目前常用的Java日志框架有Log4j、Logback、Log4j2,性能方面推荐使用异步的Log4j2,具体对比不多做分析,前人早已完成耕荒,我们就站在巨
log4j、logback、Log4j2简介log4j是apache实现的一个开源日志组件logback同样是由log4j的作者设计完成的,拥有更好的特性,用来
Springboot默认集成的就是logback,logback相对来说是优秀于log4j的,log4j2也是参考了logback的设计。本篇就是来看看如何使用
Springboot默认集成的就是logback,logback相对来说是优秀于log4j的,log4j2也是参考了logback的设计。自定义
log4j1/log4j2中category的配置以及log的输出位置(windows和linux通用的log输出位置)一、场景和需求假设我现在有3个独立的用p