# exlog **Repository Path**: sulifer/exlog ## Basic Information - **Project Name**: exlog - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-29 - **Last Updated**: 2024-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **hro-exlog-spring-boot-starter** # 一、功能介绍: 增加在controller的public方法调用前的切面,赋值logback的MDC映射,可以在对应服务的logback中直接使用变量。 # 二、自定义变量与变量意义: appName:服务名 reqId:请求的UUID globalReqId:请求的全局UUID,如果没有feign的发起方,则等同于reqId uri:请求的uri method:请求的方法类型 headers:请求头 params:请求参数 personalMention:自定义输出(通过继承实现PersonalMention类,默认返回空字符串) # 三、使用方法 ## 1.引入maven ``` com.job51.hro hro-exlog-spring-boot-starter 2.2.0-RELEASE ``` 注: 如果启动类标注了@ComponentScan ,需要扫描"com.job51.hro.exlog"。 ## 2.必须静态配置 ### 2.1在bootstrap.yaml中配置属性logDir ``` 例: logDir: /www/logs/${spring.application.name}/ ``` ### 2.2在项目的logback-spring.xml中加入include标签,resource="base-logback.xml" ``` 例: ``` ## 3.如果要自定义appender,可以在logback-spring.xml中encoder.pattern中使用增加的自定义变量。%X{变量名} ``` 例: Date:[%d{yyyy-MM-dd HH:mm:ss.SSS}]|[%X{appName}]|globalRequestID:[%X{globalReqId}]|localRequestID:[%X{reqId}]|uri:[%X{uri}]|method:[%X{method}]|headers:[%X{headers}]|[%-5level] %C.%M\(%F:%L\)%m %n UTF-8 ``` ## 4.在项目logback-spring.xml中给feign和mapper设置debug级别(非必须) ``` 例: ``` 注: 如果要开启feign日志,需要配置feign的loggerlevel 如果要开启mybatis-plus日志,需要配置mybatis-plus的log-imp为slf4j ## 5.headers可以指定 请求头key来记录 (0.0.11-BETA后支持) 需要在配置中加入以下配置: ``` 例: exlog: pass-header: - hroj-token ``` 表示 headers 只记录hroj-token ## 6.拦截器顺序控制 如果项目中有自定义的HandlerInterceptor,推荐在配置WebMvcConfigurer的时候将拦截器RequestPreAdviser的次序放到最优先 # 更新日志 ##### 1.0.0-BETA.2 (2022/11/24) - 分离部分MDC赋值操作到@ModelAttribute注解,解决非法参数请求也能记录相关参数到日志。 ##### 1.0.0-BETA.3 (2022/11/28) - 修复lion对象出现的空指针异常,当配置中未配置passHeader可能引起的空指针异常已修复。 ##### 1.0.1-RELEASE (2022/11/28) - 修改日志路径logHome 为logDir。 ##### 1.0.2-RELEASE (2023/01/28) - 增加日志自定义内容输出字段personalMention,需要实现PersonalMention类,默认返回空字符串。 ##### 2.0.1-BETA.1 (2023/03/07) - 修改抓取post参数的方式,通过拦截HttpServletRequest实现。 - 默认减少了sys日志的输出头,默认减少了traceFeign和traceSql的日志输出头 ##### 2.0.1-BETA.4 (2023/03/08) - PersonalMentionImpl不在需要手动在项目注入Bean ##### 2.0.1-BETA.5 (2023/03/20) - Feign日志和sql日志自动压缩和自动删除配置 ##### 2.1.0-BETA.4 (2023/04/22) - 摒弃ControllerAdvice的方式,采用实现HandlerInterceptor的方式来采集MDC数据,用户可以灵活控制拦截器的次序执行 ##### 2.2.0-RELEASE (2023/06/09) - mybatis traceSql日志增加方法名节点