日志管理模块的使用

近期接触了日志管理模块方面的知识,总结如下:

本模块功能主要记录用户的一些增删改查的操作,记录到数据库中,并且可以在单独的日志模块中进行显示

整体结构如下:



具体介绍(对加密不做介绍):

1LogConfiguration类,实现了日志管理模块从配置文件log.properties中读取日志配置信息的功能。

    isNeedLog()方法读取配置文件中的keylog.inuse的记录,返回一个boolean类型的值,用于检查是否需要使用记录日志的功能,如需要使用,则调用记录日志的方法。

    isEncrypt()方法读取配置文件中的keylog.encrypt的记录,返回一个boolean类型的值,用于检查日志信息是否需要被加密。如需要加密,记录日志的程序将自动调用加密算法。

    getOperationType()方法读取配置文件中keylog.operation.type的记录,读取需要记入日志的操作类型,此方法返回值为String

    getOperations()方法读取配置文件中keylog.operation.+keylog.operation.type的返回值的记录,用于读取所有在配置文件中配置的需要被记为日志的操作。此方法的返回值是一个String[]

2LoggerService类,用于处理日志操作。

    log(Object[] logParams)方法,通过从前台传入的一个Object[]得到需要被记入日志的具体操作,该具体操作的类型为OperationType。此方法以操作类型,前台传入的Object[],LogConfiguration.isEncrypt()为参数,调用OperationHelperwrite()方法将日志信息加密并记入数据库。

    clear(Date endTime)方法,通过前台传入的一个Date类型的参数,调用cleanLogEntitiesbyTime()方法清除传入参数时间之前的所有日志信息。

3LogHelper用于处理日志信息。

    getOperationTypeList (List logList, MessageResources resources, Locale locale)方法,此方法通过传入的三个参数生成一个国际化后的操作类型列表,用于查询日志页面的操作类型下拉列表的国际化显示。此方法返回值类型为List

    makeOperationType (List logList, MessageResources resources, Locale locale)方法,此方法通过传入的三个参数对日志信息列表中每条记录的操作类型字段进行国际化。并返回国际化以后的日志信息列表。此方法返回值类型为List

    displayLogList(List logList, MessageResources resources, Locale locale)方法,此方法通过通过传入的三个参数对由当前日志信息和解密以后的原始日志信息组成的日志信息列表中的操作类型字段进行国际化,并返回国际化后的日志信息列表。此方法返回值类型为List

4LogRegister。该类用于注册所有需要记录的操作类型到系统中,该类还支持模糊匹配功能。

    init()方法,此方法在LogRegister被实例化的时候调用,并通过调用registerAllOperations(int value)方法,将所有需要记录日志的操作注册到一个Hashtable中。返回这个Hashtable

5MessageHelper。该类主要用于格式化日志信息的Message字段。

    mergeMessage(String message, Object[] params)方法,此方法通过传入的一个String类型的message和一个Object[]参数来格式化一条操作的message并以String类型返回格式化后的message.

 6OperationHelper。该类主要用于管理向数据库中存储日志信息的线程,在存储到数据库前,调用加密算法将日志信息加密并存入日志对象的加密字段。

    OperationHelper()方法,是OperationHelper类的构造方法,此方法在这个类被实例化的时候,通过从服务器端读取公钥和私钥对加密和解密算法进行初始化,并创建一个新的线程和链表用于实现并发时的日志记录功能。writelog(LogPO log)方法是这个构造方法的内部方法,此方法主要的作用是在新的线程中从链表中取出日志对象,对日志对象中的信息加密重新存入日志对象的加密字段中,调用LogDAOadd(LogOP log)方法,将日志信息存入数据库。

    add(LogPO po)方法,此方法的作用是将传入的日志对象存入链表以便处理并发时产生的问题。

    get()方法,此方法的作用是从链表中去出日志对象并释放掉这个日志对象在链表中占用的内存。

    write(OperationType type, Object[] params, boolean isEncrypt)方法,此方法在记录日志时被调用,通过传入的操作类型的对象,操作类型,以及是否需要对日志信息加密三个参数来构造一个日志对象,并把这个对象加入链表。

    load(List logList)方法,此方法通过处理传入的日志列表参数中的日志对象,取出日志对象的加密字段,并对加密字段进行解密,构造一个新的对象加入传入的日志列表,并将这个列表返回,来处理加密日志和当前显示日志的数据转换问题。

7OperationType。该类主要定义了各种操作的操作类型,以及相应的mssage模版。



posted on 2007-11-27 16:22  leo_cnblogs  阅读(1350)  评论(0编辑  收藏  举报

导航