如何记录系统(oa)的操作日志 ?

摘要:
打印项目运行日志不是一个文件或控制台,但需要向使用OA的人员显示谁、何时、什么以及操作内容,以供参考。例如,如果客户的姓名被更新,则需要记录其姓名、修改时间、客户的原名和客户的新名。设计思路如下:1。在动作层中使用spring-aop。优点是动作层方法,即使它包含多个服务层,也将被视为一个操作

  并不是把项目运行日志打印的文件或者控制台,而是需要把 谁,什么时候,操作了什么.操作的内容是什么,显示出来给使用oa的人员查阅.

  例如:更新了一个客户的名字.就需要记录为 谁,什么时候,修改了 客户,客户原名字,客户的新名字 记录下来.

  设计思路有:

  1.在action 层使用spring aop.

  好处是一个action 层的方法,即使包含了多个service 层的方法(操作),也会被看着是一个操作来记录.

  问题是:action 层从jsp 传过来的参数是HttpServeletRequest 类型,根本不知道传过来的参数 到底是什么.

  2.在service 层使用spring aop.

  好处是可以获取到具体的参数.

  问题是:假如多个多个service 层方法组成一个action 层的方法,日志将会记录多个操作,过于复杂,普通操作人员看不懂.

  3.直接在action层手写.不使用spring aop

  将日志记录到数据库.好处是可以将日志写的非常具体.

  问题是: 每个方法都写,太累!

  

  最后使用方法2.

  因为只对增加,删除,修改做日志,这样action 层一个方法都只有一个需要事务的方法(增删改),所以是一对一,没什么问题,可以写的比较清晰.

  实现的技术有 :在实体类添加自定义注解+spring aop +实体类添加getNameForLog() 方法.

  getNameForLog() 方法会返回一个对象唯一的标识,如名字,如Id.通过这个方法可以在aop 中获取方法的参数对象的唯一名字.这个名字就是日志中的"操作的内容是什么"的内容,可以让一般人看的懂是操作了什么对象.

  有一个问题是:不知道在aop 中获取参数更新前的数据.因为update(obj) 中的obj 已经是提交用于更新的.

  在此也请教一下有没有其他更好的方法实现这种日志记录呢?谢谢!

  

免责声明:文章转载自《如何记录系统(oa)的操作日志 ?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Zeal——好用的离线 API 文档大全!在Windows环境下搭建Snort+BASE入侵检测系统下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Equinox OSGi系列之 创建自己的OSGi应用项目

1、摘要 前述文档我向大家展示了Equinox OSGi环境及其搭建配置。从本文开始,我们将详细讨论Bundle的开发及OSGi应用构建。 2、OSGi相关概念 在正式进入Bundle的设计与开发之前,我们先来熟悉一下OSGi框架中的一些概念。用户在设计Bundle时必须要深入理解这些实体概念。 实体概念 实体概念说明 Bundle - 安装到OS...

从未如此简单:10分钟带你逆袭Kafka!【转】

【51CTO.com原创稿件】Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点。 较之传统的消息中间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息...

kafka(一)入门

一、消息引擎系统 这类系统引以为豪的消息传递属性,像引擎一样,具备某种能量转换传输的能力 消息引擎系统是一组规范,企业利用这组规范在不同系统之间传递语义准确的消息,实现松耦合的异步式数据传递。通俗地讲就是系统A发送消息给消息引擎系统,系统B从消息引擎系统读取系统A的消息 既然消息引擎系统是用于不同系统之间传输消息的,如何设计待传输消息的格式,提供可重用性及...

Kafka — 高吞吐量的分布式发布订阅消息系统【转】

1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic、发送消息、消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件?6.producer是否直接将数据发送到broker的leader(主节点)?7.Kafa consumer是否可以消费指定分区消息?8.Kafka消息是采...

搭建Loki、Promtail、Grafana轻量级日志系统(centos7)

需求 公司项目采用微服务的架构,服务很多,每个服务都有自己的日志,分别存放在不同的服务器上。当查找日志时需要分别登录不同的服务器,有大量的请求的情况下,在日志文件中查找信息十分困难。想要搭建一个日志系统,ELK分布式日志系统对于中小型公司来说开发维护成本太高,经过调研,选择Loki轻量级日志系统。 Loki简介 Loki 是一个水平可扩展,高可用性,多租户...

Raft协议--中文论文介绍

本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为《In search of an Understandable Consensus Algorithm (Extended Version)》(寻找一种易于理解的一致性算法)。 Raft 是一种用来管理日志复制的一致性算法。它和 Paxos 的性能和功能是一样的,但是它和 Paxos 的结构不一...