Spring Boot 日志处理你还在用Logback?
2019-11-06 00:16
1906 查看
▶ Log4j2 性能
- ht 2bb0 tps://logging.apache.org/log4j/2.x/performance.html
▶ Spring Boot 依赖与配置
Maven 依赖
<!-- web --> <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> </exclusions> </dependency> <!-- 日志 Log4j2 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- Log4j2 异步支持 --> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.3.6</version> </dependency>
XML 配置 resources/log4j2.xml
- 混合 sync/async
- 彩色日志
- 分类输出到不同文件
- 自动压缩日志文件并归档
<?xml version="1.0" encoding="UTF-8"?> <!-- Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时, 你会看到log4j2内部各种详细输出。可以设置成OFF(关闭) 或 Error(只输出错误信息)。 30s 刷新此配置 --> <configuration status="WARN" monitorInterval="30"> <!-- 日志文件目录、压缩文件目录、日志格式配置 --> <properties> <Property name="fileName">/Users/admin/Code/log</Property> <Property name="fileGz">/Users/admin/Code/log/7z</Property> <Property name="PID">????</Property> <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property> </properties> <Appenders> <!-- 输出控制台日志的配置 --> <Console name="console" target="SYSTEM_OUT"> <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/> <!-- 输出日志的格式 --> <PatternLayout pattern="${LOG_PATTERN}"/> </Console> <!-- 打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 --> <RollingRandomAccessFile name="infoFile" fileName="${fileName}/web-info.log" immediateFlush="false" filePattern="${fileGz}/$${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.web-info.gz"> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="20 MB"/> </Policies> <Filters> <!-- 只记录info和warn级别信息 --> <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <!-- 指定每天的最大压缩包个数,默认7个,超过了会覆盖之前的 --> <DefaultRolloverStrategy max="50"/> </RollingRandomAccessFile> <!-- 存储所有error信息 --> <RollingRandomAccessFile name="errorFile" fileName="${fileName}/web-error.log" immediateFlush="false" filePattern="${fileGz}/$${date:yyyy-MM}/%d{yyyy-MM-dd}-%i.web-error.gz"> <PatternLayout pattern="${LOG_PATTERN}"/> <Policies> <SizeBasedTriggeringPolicy size="50 MB"/> </Policies> <Filters> <!-- 只记录error级别信息 --> <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/> </Filters> <!-- 指定每天的最大压缩包个数,默认7个,超过了会覆盖之前的 --> <DefaultRolloverStrategy max="50"/> </RollingRandomAccessFile> </Appenders> <!-- Mixed sync/async --> <Loggers> <Root level="debug" includeLocation="true"> <AppenderRef ref="console"/> <AppenderRef ref="infoFile"/> <AppenderRef ref="errorFile"/> </Root> <AsyncRoot level="debug" includeLocation="true"> <AppenderRef ref="console"/> <AppenderRef ref="infoFile"/> <AppenderRef ref="errorFile"/> </AsyncRoot> </Loggers> </configuration>
最终效果如下:
© 著作权归作者所有,转载或内容合作请联系作者
问题来了,请问诸位你们项目中目前在使用Logback还是Log4j2呢?
● 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?
本文由博客一文多发平台 OpenWrite 发布!
相关文章推荐
- Springboot+logback集成ELK处理日志实例
- 在SpringBoot中添加Logback日志处理
- Spring Boot教程(六)使用AOP统一处理Web请求日志
- spring boot 使用logback 保存日志
- springboot2.0整合logback日志(详细)
- 54. spring boot日志升级篇—logback【从零开始学Spring Boot】
- 详解Spring Boot配置使用Logback进行日志记录的实战
- 基于Spring Boot的Logback日志轮转配置
- springboot实际项目:日志打印、表单验证、异常处理
- Spring Boot中使用AOP统一处理Web请求日志
- Spring-boot 日志配置logback
- springboot入门(四)springboot默认日志logback配置
- Spring Boot中使用AOP统一处理Web请求日志
- STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)
- SpringBoot初始教程之日志处理(二)-1
- springboot使用logback记录日志(1.mybatis 2.在控制台显示sql)
- SpringBoot日志logback-spring.xml分环境
- SpringBoot学习笔记之日志处理
- SpringBoot初始教程之日志处理(二)
- Spring Boot干货系列:(七)默认日志logback配置解析