系统日志管理
一、功能描述:
系统日志的核心功能基于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数据日志查看
同关系型数据库日志查询页面, 只是数据来源不同;