系统日志管理

狼烟烽火 2015-09-21

一、功能描述:    

    系统日志的核心功能基于Log4J实现,并在此基础上提供系统日志管理相关功能,旨在方便用户开发维护。

    1、日志文件下载功能:提供前端日志下载功能,方便用户快速获取日志文件;

    2、实时监控日志文件:提供日志文件控制台功能,可以准实时查看系统输出的日志;

    3、重载日志配置文件:动态加载修改的日志配置文件,无需重新启动系统;

    4、调整日志级别:可以动态调整某一类日志的输出级别,无需重新启动系统,方便在不重启系统时调试;

    5、日志信息数据库存储:日志可以存储在关系型数据库(Oracle、DB2、MySQL等)和非关系型数据库Mongodb;

    6、日志信息格式化存储:某些应用场景可能希望日志信息不是储存在数据库的一个字段中,而是将日志的信息储存在不同的字段中,方便分类、查询。扩展Log4J的Appender来实现,如下代码,实现了将一条日志信息格式化后储存在S_LOG2表中biz1、biz2、biz3三个字段:com.yucheng.cmis.platform.logmng.ExtAppender为扩展Log4J的Appender

<!-- 输出到数据库,支持将日志内容格式化分别存储到biz1,biz2,biz3三个字段中,调用示例:EMPLog.log(“EXTLog”, EMPLog.DEBUG, 0, "张三||授信模块||张三操作了授信模块");-->
	<appender name="extAppender" class="com.yucheng.cmis.platform.logmng.ExtAppender">
		<!-- jndiName数据库数据源-->
		<param name="jndiName" value="java:comp/env/WFDataSource"/>
		<param name="bufferSize" value="1"/><!-- 批量写入日志的缓冲条数 -->
		<!—ExtAppender会解析插入的SQL-->
		<param name="sql" value="INSERT INTO S_LOG2 (LOG_DT,LOG_TIME,LOG_LEVEL,LOG_CATEGORY,LOG_THREAD,biz1,biz2,biz3,THROWABLE) VALUES ('%d{yyyy-MM-dd}','%d{yyyy-MM-dd HH:mm:ss:SSS}','%p','%c','%t','','','','%%')"/>
		<!-- 创建日志表sql语句,使用中如果没有日志表,将调用该sql自动创建 -->
		<!-- oracle创建日志表sql语句 -->
		<param name="sqlCreate" value="CREATE TABLE S_LOG2(LOG_DT CHAR(10),LOG_TIME CHAR(23),LOG_LEVEL VARCHAR2(5),LOG_CATEGORY VARCHAR2(255),LOG_THREAD VARCHAR2(255),biz1 VARCHAR2(255),biz2 VARCHAR2(255),biz3 VARCHAR2(255),THROWABLE CLOB)"/>
	</appender>
<category name="EXTLog">
		<priority value="debug"/>
		<appender-ref ref="extAppender"/>
	</category>

        7、审计日志:不同应用有不同的实现,主要是记录用户、机构、角色在何时操作了系统的什么功能;

一、界面原型:


1、日志文件下载页面

 系统日志管理

说明:

       日志文件下载页面以列的方式展示所有日志文件,并提供【下载】日志文件功能和【监控文件日志】功能

2、监控文件日志


系统日志管理
说明:

在日志文件下载页面中选中一个日志文件,点击【监控文件日志】按钮,可以实时监控该日志文件中的日志。

3、重载日志配置文件页面

系统日志管理
 说明:

         重新加载logging.xml日志配置文件。

4、设整日志级别页面

系统日志管理

系统日志管理
说明:

    调整日志级别,调整完成后可以实时【生效】、【重置】。

5、关系型数据库日志查询页面


系统日志管理
 

说明:

    查看DataSourceAppender对应的数据库日志表(S_LOG)信息,对于其它扩展的业务日志表需要重新开发页面。

       

        6、Mongodb数据日志查看

        同关系型数据库日志查询页面, 只是数据来源不同;

 

相关推荐

lightlanguage / 0评论 2020-04-22