[TOC]
# log-spring-boot-starter
log-spring-boot-starter 通过autoconfig微内核的形式深入定制logback功能完成平台平台的日志能力。
## Logback介绍
Logback是由log4j创始人设计的又一个开源日记组件,Logback是SpringBoot内置的日志处理框架,spring-boot-starter其中包含了spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框。

## logback取代log4j的理由:
* 更快的实现:Logback的内核重写了,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小了。
* 非常充分的测试:Logback经过了几年,数不清小时的测试。Logback的测试完全不同级别的。
* Logback-classic非常自然实现了SLF4j:Logback-classic实现了SLF4j。在使用SLF4j中,你都感觉不到logback-classic。而且因为logback-classic非常自然地实现了slf4j ,所以切换到log4j或者其他,非常容易,只需要提供成另一个jar包就OK,根本不需要去动那些通过SLF4JAPI实现的代码。
* 非常充分的文档官方网站有两百多页的文档。
## 统一日志标准组件
平台统一定义了logback-spring.xml文件,通过此问题可以解决平台级日志的共性问题
* 统一日志格式

* 启动服务日志格式

* 定义业务log通用json格式

* 网关自定义请求日志json格式标准输出

## traceId生成工具类

## 服务日志模块隔离
* 鉴别器实现根据tag打印日志服务

* mdc 设置tag实现打印日志

* 配置sql等不同模块日志的日志枚举

* 代码生成模块打印sql日志

* 网关打印请求日志

## 日志滚动附加器
* 日志需要按时间进行归档,配置如下

* 归档效果

## 审计日志
基于消息驱动条件装配的spring cloud stream kafka处理审计日志

## 基于SpEL表达式解析定义审计日志格式
~~~
@AuditLog(operation = " #sysUser.username + '查看了用户列表'")
~~~
## kafka审计日志生产者

## kafka审计日志消费者

## 配置开启消息驱动审计日志
```
ocp.audit-log.enabled=true
ocp.audit-log.log-type=kafka
ocp.security.xss.enable=true
##### kafka
spring.cloud.stream.kafka.binder.brokers[0]=192.168.11.203:9092
spring.cloud.stream.kafka.binder.auto-create-topics=true
spring.cloud.stream.kafka.binder.min-partition-count=3
spring.cloud.stream.bindings.output.destination=auditlog
spring.cloud.stream.bindings.output.group=auditlog-group
spring.cloud.stream.bindings.output.content-type=application/json
spring.cloud.stream.bindings.input.consumer.max-attempts=3
spring.cloud.stream.bindings.input.destination=auditlog
spring.cloud.stream.bindings.input.content-type=application/json
spring.cloud.stream.bindings.input.group=auditlog-group
```
- 01.前言
- 02.快速开始
- 01.maven构建项目
- 02.安装mysql数据库
- 03.安装redis缓存中间件
- 04.快速启动框架
- 03.总体流程
- 01.架构设计图
- 02.oauth接口
- 03.功能介绍
- 04.部署细节
- 04.模块详解
- 01.基础介绍
- 02.自定义db-spring-boot-starter
- 03.自定义log-spring-boot-starter
- 04.自定义redis-spring-boot-starter
- 05.自定义base-spring-boot-starter
- 06.自定义common-spring-boot-starter
- 07.自定义loadbalancer-spring-boot-starter
- 08.自定义swagger-spring-boot-starter
- 09.自定义uaa-client-spring-boot-starter
- 10.自定义uaa-server-spring-boot-starter
- 11.自定义oss-spring-boot-starter
- 12.自定义sentinel-spring-boot-starter
- 05.服务详解
- 01.nacos-server
- 02.auth-server
- 03.user-center
- 04.new-api-gateway
- 05.file-center
- 06.log-center
- 07.back-center
- 08.auth-sso模块
- 09.admin-server
- 10.job-center
- 06.系统安全
- 01.非法字符漏洞攻击
- 02.防重放攻击
- 03.代码审计
- 04.Xray扫洞
- 05.混沌工程质量保证
- 07.生产部署K8S
- 01.基本环境安装
- 02.基本组件安装
- 03.集群验证
- 04.安装Metrics Server
- 05.安装容器平台
- 06.Ingress网关
- 07.metalb负载均衡器
- 08.容器平台集群
- 08.K8S资源练习
- 01.Deployment
- 02.StatefulSet
- 03.DaemonSet
- 04.redis集群服务
- 05.elasticsearch集群
- 06.rocketmq部署
- 09.生产容器化部署
- 01.nacos集群部署
- 02.user-center服务
- 03.auth-server服务
- 04.new-api-gateway服务
- 技术交流