首页 > 代码库 > Koala业务日志系统设计说明
Koala业务日志系统设计说明
源代码:http://git.oschina.net/openkoala/koala
koala-business子模块
模块划分
模块名 |
作用 |
koala-businesslog-api |
业务日志系统的核心api |
koala-businesslog-impl |
业务日志系统的koala的默认实现 |
koala-businesslog-web |
业务日志系统web模块 |
koala-businesslog-acceptance-test |
业务日志系统的集成测试,也是业务日志系统的 **范例**,实际使用时,可以参考此模块 |
时序图
类图
koala-businesslog-api模块
koala-business-impl模块
词汇表
类名 |
说明 |
BusinessLogServletFilter |
实现filter接口,抽象父类,定义抽象方法beforeFilter |
LogFilter |
继承beforeFilter,实现beforeFilter方法,设置用户名、IP |
AbstractBusinessLog |
自定义业务日志抽象父类,包含log,category字段 |
DefaultBusinessLog |
系统默认业务日志实体类,包含用户名、IP、时间 |
BusinessLogExporter |
业务日志导出接口 |
BusinessLogExporterImpl |
系统默认业务日志导出实现类,保存到数据库 |
ThreadLocalBusinessLogContext |
线程本地变量上下文,实现数据在线程内共享 |
BusinessLogInterceptor |
AOP拦截器 |
BusinessLogThread |
业务日志线程执行类 |
GroovyObjectClassCache |
Groovy对象缓存类 |
ConfigConstant |
系统配置常量类 |
groovy考量
使用groovy语言来实现日志模板的记录而不是XML,考量的因素如下:
1. 它支持动态修改,而无须重启服务
2. 使用groovy并不会带来太大的学习成本,以写java代码的方式来写就可以了
3. 这种方式可以获取关联查询,如方法中deptId,但日志中我想拿的是deptName(如:架构部),那使用groovy,你可以轻松使用编写java代码来实现
4. 它有语法检验,使用XML配置,要做到这一点有难度
Koala业务日志系统设计说明