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配置,要做到这一点有难度

时间: 2024-10-17 05:26:58

Koala业务日志系统设计说明的相关文章

Koala业务日志系统使用教程

2 使用教程 前提 成功创建Koala Project,并且勾选集成业务日志子系统. 步骤 1. 业务方法标注@MethodAlias 格式: @MethodAlias("业务方法别名") 业务方法 示例: @MethodAlias("savePersonInfo") public PersonInfo savePersonInfo(PersonInfo personInfo) { personInfo.save(); return personInfo; } 要求

Koala业务日志系统手动集成

4 手动集成 1. 添加依赖 application层添加业务日志接口模块依赖 <dependency> <groupId>org.openkoala.businesslog</groupId> <artifactId>koala-businesslog-api</artifactId> <version>4.0.0</version> </dependency> web层添加业务日志实现模块依赖 <de

项目集成koala业务日志子系统

Koala平台的业务日志子系统是基于Maven的项目模块,最方便的集成是项目也使用Maven,war项目集成请自行下载jar包 前提 依赖spring 添加仓库 <repositories> <repository> <id>koala-releases</id> <url>http://nexus.openkoala.org/content/repositories/public-releases/</url> <releas

DNS的视图功能以及日志系统

实验环境:RHEL5.8 32Bit DNS的视图功能以及日志系统详解 DNS的主配置文件中的allow-recursion参数用来定义能够和DNS服务器进行递归的客户端来源,allow-query参数用来定义允许到DNS服务器上面发起查询请求的客户端,allow-transfer参数用来定义允许和DNS服务器进行区域传送的客户端,区域传送主要有两种方式,axfr和ixfr,使用dig命令也可以模拟实现区域传送: 如果我们的DNS服务器允许进行递归.发起查询请求以及进行区域传送的客户端比较多的话

atitit. 日志系统的原则and设计and最佳实践(1)-----原理理论总结.

atitit. 日志系统的原则and设计and最佳实践总结. 1. 日志系统是一种不可或缺的单元测试,跟踪调试工具 1 2. 日志系统框架通常应当包括如下基本特性 1 1. 所输出的日志拥有自己的分类. 2 2. 日志按照某种标准分成不同级别. 2 3. 支持多线程. 2 4. 稳定性. 2 3. 一个理想的日志模式 2 4. 判断指定的方法是否被调用了 3 5. 给方法的输入输出加上日志通过Aop 3 6. 日志易读,易解析  对日志感兴趣的可以分为两类: 3 7. 输出日志使用的性能 3 8

Java日志系统框架的设计与实现

推荐一篇好的文章介绍java日志系统框架的设计的文章:http://soft.chinabyte.com/database/438/11321938.shtml 文章内容总结: 日志系统对跟踪调试.程序状态记录.数据恢复等功能有重要作用 日志系统一般作为服务进程或者系统调用存在,我们一般程序中使用系统调用 常用日志系统包括log4j的简单介绍 日志系统的系统架构 日志系统的信息分级 日志输出的设计 下面是全文的引用: 在Java领域,存在大量的日志组件,open-open收录了21个日志组件.日

生产环境业务日志的管理

生产环境,业务系统的日志包括业务自身逻辑的日志,中间件平台的日志,操作系统的日志等. 从性能考虑: 一般而言,业务自身的逻辑日志,应该配置为非debug和trace模式,这样减轻服务器的负担. 中间件平台的日志,尽量开启非debug和trace模式,减轻服务器负担. 如果业务系统遇到问题,需要详细的日志跟踪进行诊断,可以临时打开日志的debug/trace模式(级别),问题解决后,关闭debug/trace模式. 从安全考虑: 业务日志不应该包含客户或者企业.商家.供应商.合作伙伴的私有信息(敏

教你一步搭建Flume分布式日志系统

在前篇几十条业务线日志系统如何收集处理?中已经介绍了Flume的众多应用场景,那此篇中先介绍如何搭建单机版日志系统. 环境 CentOS7.0 Java1.8 下载 官网下载 http://flume.apache.org/download.html 当前最新版  apache-flume-1.7.0-bin.tar.gz 下载后上传到CentOS中的/usr/local/ 文件夹中,并解压到当前文件中重命名为flume170    /usr/local/flume170 tar -zxvf a

日志系统之定时任务执行引擎

概述 最近这段时间在强化日志系统自身的稳定性和可靠性,一个稳定可靠的系统离不开监控,我们这里谈及的监控除了服务是否存活还有这些组件的核心metrics采集与抓取,为此我们将这些任务做成了定时任务来执行.由于大致的思路以及设计已经成型,所以今天来分享一下日志系统在定时任务这块的选型与设计. 组件运行时监控 从我之前分享的文章中不难看出我们日志系统的各个组件的选型: 采集agent : Flume-NG 消息系统 : Kafka 实时流处理 : Storm 分布式搜索/日志存储(暂时) : Elas