首页 > 代码库 > 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

自定义业务日志抽象父类,包含logcategory字段

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业务日志系统设计说明