博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目集成koala业务日志子系统
阅读量:7045 次
发布时间:2019-06-28

本文共 4399 字,大约阅读时间需要 14 分钟。

hot3.png

Koala平台的业务日志子系统是基于Maven的项目模块,最方便的集成是项目也使用Maven,war项目集成请自行下载jar包

前提

依赖spring

添加仓库

koala-releases
http://nexus.openkoala.org/content/repositories/public-releases/
true
false
koala-snapshots
http://nexus.openkoala.org/content/repositories/public-snapshots/
false
true

添加依赖

org.openkoala.businesslog
koala-businesslog-api
3.0.0
org.openkoala.businesslog
koala-businesslog-impl
3.0.0

根据项目实际分层情况添加依赖到对应的pom.xml,Koala项目把依赖添加到application-impl层

创建LogFilter类

例如com.xiaokaceng.demo.web.controller.businesslog.LogFilter.java

package com.xiaokaceng.demo.web.controller.businesslog;import org.openkoala.businesslog.utils.BusinessLogServletFilter;import javax.servlet.*;public class LogFilter extends BusinessLogServletFilter {    /**     * 将需要用到的信息放入日志上下文     *     * @param req     * @param resp     * @param chain     */    @Override    public void beforeFilter(ServletRequest req, ServletResponse resp, FilterChain chain) {        addIpContext(getIp(req));        // TODO 需要自己实现获取用户名        addUserContext("xxx");    }    public void init(FilterConfig filterConfig) throws ServletException {        //To change body of implemented methods use File | Settings | File Templates.    }    public void destroy() {        //To change body of implemented methods use File | Settings | File Templates.    }}

注意:当前用户需根据系统实现来获取

配置web.xml

        
LogFilter
com.xiaokaceng.demo.web.controller.businesslog.LogFilter
LogFilter
/*

类路径下创建koala-businesslog.properties

pointcut=execution(* org.openkoala.example.application.impl.*.*(..))#日志开关kaola.businesslog.enable=true#日志导出器businessLogExporter=org.openkoala.businesslog.utils.BusinessLogExporterImpl#数据库设置log.db.jdbc.driver=${db.jdbcDriver}log.db.jdbc.connection.url=${db.connectionURL}log.db.jdbc.username=${db.username}log.db.jdbc.password=${db.password}log.db.jdbc.dialect=${hibernate.dialect}log.hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto}log.hibernate.show_sql=${hibernate.show_sql}log.db.Type=${db.Type}db.generateDdl=${generateDdl}log.maximumConnectionCount=3000log.minimumConnectionCount=100#线程池配置#核心线程数log.threadPool.corePoolSize=100#最大线程数log.threadPool.maxPoolSize=3000#队列最大长度log.threadPool.queueCapacity=2000#线程池维护线程所允许的空闲时间log.threadPool.keepAliveSeconds=300#线程池对拒绝任务(无线程可用)的处理策略log.threadPool.rejectedExecutionHandler=java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy

pointcut(切入点):通过切面记录业务日志 

businessLogExporter(业务日志输出):指定采用那种方式输出,默认输出是记录到数据库,可扩展BusinessLogExporter接口实现自定义输出

整合业务功能

例如某接口实现类PersonInfoApplicationImpl.java,需要对新增、删除方法进行业务日志记录。代码如下:

@MethodAlias("save")	public PersonInfoDTO savePersonInfo(PersonInfoDTO personInfoDTO) {		PersonInfo personInfo = new PersonInfo();		try {        	BeanUtils.copyProperties(personInfo, personInfoDTO);        } catch (Exception e) {        	e.printStackTrace();        }		personInfo.save();		personInfoDTO.setId((java.lang.Long)personInfo.getId());		return personInfoDTO;	}       @MethodAlias("remove")	public void removePersonInfo(Long id) {		this.removePersonInfos(new Long[] { id });	}

在需要记录的业务日志的方法上打上@MethodAlias的注解,value的值必须是唯一的,命名规则必须符合java方法命名

  • 类路径下创建businessLogConfig文件夹

用于存放处理业务日志的groovy文件

  • businessLogConfig文件夹下创建groovy文件

文件名可以随意,只要符合java类命名规则。如PersonInfoApplicationImpl.groovy

package vm.other.businesslog_resources.businessLogConfigclass PersonInfoApplicationImpl {    def context    def save() {        "${getPreTemplate()}:创建个人信息,名字为:${context._param0.name}"    }        def remove() {        "${getPreTemplate()}:删除个人信息"    }        def getPreTemplate(){        "${context._user}-"    }}

这里的方法名必须与@MethodAlias的value一一对应

  • 引入Spring配置

<import resource="classpath*:koala-businesslog-aop.xml"></import>

<import resource="classpath*:koala-businesslog-shared-persistence.xml"></import>

  • 添加packagesToScan

<value>org.openkoala.businesslog.model</value>

演示

业务功能访问地址:

业务日志功能访问地址:

Demo下载地址:

转载于:https://my.oschina.net/xiaokaceng/blog/290070

你可能感兴趣的文章
MySQL 1130 - Host 127.0.0.1 is not allowed to connect to this MySQL server
查看>>
条件判断
查看>>
基于Odoo框架的开源在线客服系统
查看>>
mysql查看所有存储过程查询
查看>>
我的友情链接
查看>>
Java BufferString
查看>>
Android笔记——Socket通信实现简单聊天室
查看>>
js修改onclick事件的四种方法
查看>>
我的友情链接
查看>>
linux文件管理必会知识
查看>>
Cocos2d-xna : 横版战略游戏开发实验4 Layer构建丰富的交互
查看>>
我的友情链接
查看>>
EDM邮件营销如何防止邮件被拒收和进垃圾箱
查看>>
hadoop报错,随记
查看>>
Linux iostat监测IO状态
查看>>
No module named yum错误的解决办法
查看>>
清除电脑垃圾文件教程
查看>>
IPSEC 、GRE、PIX
查看>>
机器学习之sklearn——EM
查看>>
tengine整合tomcat加上memcached实现高并发、负载均衡、可扩展架构
查看>>