# logmask
**Repository Path**: fhlm/logmask
## Basic Information
- **Project Name**: logmask
- **Description**: No description available
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-06-05
- **Last Updated**: 2021-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# logmask
**用于过滤日志文件敏感信息**
## logmask功能介绍
- 默认实现过滤铭感信息过滤
- 手机号信息过滤 (com.zztt.logmask.common.handle.PhoneMaskHandle)
- 银行卡号过滤 (com.zztt.logmask.common.handle.BankCardMaskHandle)
- 身份证号码过滤 (com.zztt.logmask.common.handle.IdCardMaskHandle)
- 自定义正则过滤
- 自定义过滤方法
## 项目使用步骤
1. 引入依赖
```xml
com.zztt
logmask
1.0-SNAPSHOT
```
2. 修改配置文件
+ log4j:
```
log4j.appender.File = org.apache.log4j.RollingFileAppender
```
替换为
```
log4j.appender.File = com.zztt.logmask.log4j.CupdataZiconRollingFileAppenderFilter
```
完整替换
```
log4j.appender.File = com.zztt.logmask.log4j.CupdataZiconRollingFileAppenderFilter
log4j.appender.File.maskHandlesEnabled=true
#多个级别用 ,号隔开
log4j.appender.File.maskHandleSuportLevel=INFO
#多个掩码处理器用 ,号隔开 按照编写的顺序进行执行
log4j.appender.File.maskHandles=com.zztt.logmask.common.handle.IdCardMaskHandle,com.zztt.logmask.common.handle.BankCardMaskHandle,com.zztt.logmask.common.handle.PhoneMaskHandle
```
+ logback
必须替换标签
```xml
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n
```
替换为
```xml
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msgf%n
```
完整替换样例
```xml
${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log
30
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -
%msgf%n
10MB
true
INFO,DUBG
com.zztt.logmask.common.handle.IdCardMaskHandle,com.zztt.logmask.common.handle.BankCardMaskHandle,com.zztt.logmask.common.handle.PhoneMaskHandle
```
3.自定义掩码功能
实现com.zztt.logmask.common.handle.MaskHandle 接口 具体看接口注释
```java
/**
* 掩码处理的接口
*/
public interface MaskHandle {
/**
* 将字符串进行掩码处理
* @param str 将要处理的日志信息
*/
void mask(StringBuilder str);
/**
* 是否匹配 如果匹配则可以进行掩码处理
* @param str 将要处理的字符串
* @return 返回是否匹配处理器进行处理
*/
boolean match(CharSequence str);
}
```
4.添加新的正则表达式的掩码功能
继承 com.zztt.logmask.common.handle.AbstractRegExMaskHandle 抽象类 具体参考默认的实现类
```
com.zztt.logmask.common.handle.IdCardMaskHandle
com.zztt.logmask.common.handle.BankCardMaskHandle
com.zztt.logmask.common.handle.PhoneMaskHandle
```
```java
/**
* 手机号的掩码处理类
*/
public class PhoneMaskHandle extends AbstractRegExMaskHandle {
/**
* 手机号的正则表达式
*/
private static final String PHONE_REG_EX="((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}";
public PhoneMaskHandle(){
super(PHONE_REG_EX);
}
public PhoneMaskHandle(String regEx){
super(regEx);
}
@Override
protected String maskStr(String matchStr) {
return MaskType.MOBILE.mask(matchStr);
}
}
```
### 配置参数详情
+ 可配置参数
| 参数 | 说明 | 默认值 |
| ------- | :----: | :--------: |
| MaskHandlesEnabled | 是否开启掩码功能 | true|
| MaskHandleSuportLevels | 支持掩码功能的日志的级别 | 所有级别|
| MaskHandles | 日志掩码的处理器 | 无 |