1.背景
为在线教育部提供高效、安全、易用的日志组件。
2.功能介绍
2.1 日志格式化
目前输出的日志格式如下:
日志级别/[YYYY-MM-DD HH:MM:SS MS] TinyLog-Tag: |线程| 代码文件名:行数|函数名|日志输出内容
-
触发flush到文件的时机:
- 每15分钟定时触发;
- mmap buffer满时触发。
-
日志清理时机:
组件init时,会自动清理过期日志,目前默认保留7天日志。
2.2 支持压缩加密
日志组件可通过接口设置是否压缩以及加密。
- 压缩模式为:zlib默认压缩模式;
- 加密模式为:RSA+AES流式加密。
2.3 支持日志上传和打包
调用日志上传和打包接口时,日志组件会根据传入参数时间将所需文件按照统一格式进行压缩打包。
2.4 支持FancyLog
在相应场景调用FancyLog接口,日志上传到后台后,可查看根据调用顺序绘制出来的流程图。
2.5 支持日志脱敏
可支持以下数据的脱敏:
- 大陆手机号
- 18位身份证号
- 邮箱号
- 自定义替换关键词:正则表达式、$(###)和${###}
$(###) 和${###} 区别是,前者为非贪婪匹配,后者为贪婪匹配,示例如下:
SensitiveConvertor *convertor = [[SensitiveConvertor alloc] initReplacerWithPattern:@"我不是$(###),"];
NSString *convertString = [convertor replace:@"我不是潘金莲,我是李雪莲,"];
//output: 我不是******,我是李雪莲,
SensitiveConvertor *convertor = [[SensitiveConvertor alloc] initReplacerWithPattern:@"我不是${###},"];
NSStr