[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服務
- 技術交流