非结构化操作日志解决方案草稿

需求:

记录系统的操作日志,要求可以做简单的查看详情功能。例如:

xx于xx年xx月xx日将xx人员信息修改为xxx

根据这条日志的内容,需要显示若干链接,点击之后可以查看详情。如上述日志内容与操作用户、被修改的人员信息相关,就需要在显示日志的时候提供查看操作人的信息、查看被修改人员信息的功能。

问题:

大部分操作日志是非结构化的,之前的方案是根据系统的核心功能,定义若干外键,强制转换为结构化的数据。如在日志表中增加人员id、单位id、用户id等若干字段,点击之后查看详情,这样的灵活性不高。

解决方案:

灵感来自于wordpress的操作日志:

image

图中共支持三种详情操作,即查看用户详情,查看类别强行和查看标签详情。这些链接都是嵌入字符串中的,不是在文字最后增加若干“查看XX详情”的链接,用户体验较好。

故有以下解决方案:

在生成日志内容的时候,将需要增加链接的部分用类似于html标签的形式包起来。如:

[user id=1]xx[/user]于xx年xx月xx日将[employee id=2]xx[/employee]信息修改为xxx。

针对每种标签,写一个标签处理类,将标签内容转换为符合html标准的超链接。标签和标签处理类的对应关系可以写xml或者properties配置,支持扩展。标签可以灵活支持各种属性。