`
eaglezhang
  • 浏览: 2137 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

业务日志记录的问题讨论

阅读更多
项目数据访问方式:

action->service-->dao

要求记录业务日志:

  访问人  访问人IP  数据变化(要求记录例如:姓名:张三 修改成  李四  年龄:男 修改成女)

现在的问题是:

   在那一层记录日志比较好,目前采取的方式是在action层,原因是里面比较容易得到 用户信息和数据信息

困惑:每一个动作ACTION都要记录日志,有没好的解决方案??

关于业务级别的日志记录,大家有没好的方案?
分享到:
评论
8 楼 coolzyt 2007-09-18  
以前日志是用拦截器,现在全改成service里手动记录了,原因是不够灵活
7 楼 Zmud 2007-09-18  
抛开技术不讲,我觉得更应当审视的是用户的真实需求问题。

楼主举的记录姓名修改、性别修改的例子往往是在人力资源的人事档案管理系统中,修改人事信息字段本身就是业务,一般我们称呼为“人事变动”,但并不是说系统的所有地方都有这个需求。

所以真实的需求也并一定就是通用的监测字段或者属性变化的日志问题,是不是可以跳出框架、AOP诱导我们的实现角度呢……
6 楼 hyhongyong 2007-09-18  
抛出异常的爱 写道
当作一个业务放到数据库的另一个表中。。。。
比原表多一个主键与修改时间字段来完成这个功能
当想要知道改成什么了,把小于此时间的记录第一条拿出来作比较
我们用AOP作到了server与dao之间,事务处理之内。


比较实用的方法!
5 楼 yiding_he 2007-09-13  
Action 中写日志的话,应该将关注点放在用户的操作而不是数据库的变化上,也就是说日志包含以下内容:

用户身份(用户名、当前角色等)
用户操作(查询、添加、修改、删除等)
操作参数
操作结果(是否成功、详细信息等)
4 楼 抛出异常的爱 2007-09-12  
当作一个业务放到数据库的另一个表中。。。。
比原表多一个主键与修改时间字段来完成这个功能
当想要知道改成什么了,把小于此时间的记录第一条拿出来作比较
我们用AOP作到了server与dao之间,事务处理之内。
3 楼 eaglezhang 2007-09-12  
欢迎各位老大继续讨论下去,我觉得这应该是大家的一个共性问题。
2 楼 lee5593 2007-09-12  
参见http://lee5593.iteye.com/blog/88163
1 楼 fuwang 2007-09-11  
要记录字段级的数据变化历史,如果采用action->service-->dao这种方式,我觉得将会很困难。
普通的程序员只会想到逐个属性的进行比对,一有变化就记录日志,而想不出一个通用的方案。
某些实现得比较好的基于元数据的底层平台,例如hipergate(http://www.hipergate.org)或maximo,应该可以轻而易举的实现这个功能。

相关推荐

    C++ 多线程日志记录

    本文将深入探讨如何使用C++实现多线程日志记录,包括涉及的关键概念、技术以及如何通过提供的文件`log.cpp`、`log.h`和`readme.txt`来理解和应用这些知识。 首先,我们要理解多线程的概念。在C++中,通过 `<thread>...

    基于切面的日志记录SSMdemo

    在IT行业中,日志记录是开发过程中的重要环节,它能帮助开发者追踪程序运行状态,定位和解决问题。本文将深入探讨“基于切面的日志记录SSMdemo”,这是一个结合了Spring、SpringMVC和MyBatis框架,并利用AOP(面向切...

    带日志记录的Delphi功能实现..rar

    本资源“带日志记录的Delphi功能实现”显然聚焦于如何在Delphi程序中实现日志记录功能,这对于调试、问题排查以及系统监控至关重要。下面将详细介绍这个主题,并围绕相关知识点展开讨论。 日志记录是软件开发中的一...

    数据日志记录讨论

    "数据日志记录讨论"这一主题深入探讨了如何有效地管理和利用日志信息。这篇博客文章(虽然链接不可用,但我们可以通过标题和标签推测其内容)可能涵盖了源码级别的日志实现以及一些实用的日志工具。 首先,源码级别...

    .net下的日志记录类库

    本文将深入探讨.NET下的一些日志记录类库,并以"Dingy.Log"为例,介绍如何使用此类库进行日志管理。 首先,我们要理解日志记录的基本概念。日志是程序运行过程中产生的事件记录,包括错误、警告、信息和调试消息等...

    日志记录工具

    本篇文章将详细探讨日志记录工具的重要性和功能,以及如何利用“nyf6test延续时间.txt”这样的日志文件进行分析。 首先,日志记录是软件开发和运维过程中的关键环节。通过日志,我们可以了解程序执行的详细流程,...

    服务应用中 不同日志管理和记录

    本主题将深入探讨不同日志管理和记录的策略与技术。 首先,我们要理解日志的基本概念。日志是应用程序运行过程中产生的记录信息,包括错误信息、警告信息、调试信息等,它们有助于开发者理解和诊断系统行为。常见的...

    异常处理及日志记录

    在这个主题中,我们将深入探讨如何在MVC框架中有效地处理异常并进行日志记录。 1. **异常处理** 在MVC中,异常处理通常涉及以下方面: - **全局异常处理**: 通过创建一个全局异常过滤器,可以确保所有未被捕获...

    使用队列进行日志的记录

    本案例探讨了如何利用队列(Queue)数据结构来处理大数据量的日志记录,同时结合MongoDB数据库作为存储解决方案。以下是关于这个主题的详细知识讲解: 1. **队列(Queue)数据结构**: 队列是一种先进先出(First ...

    拦截器记录日志

    拦截器通常被应用于框架中,如Spring MVC和Struts2,它们允许开发者在业务逻辑执行前、后进行额外的操作,比如日志记录、权限验证、性能监控等。本主题将深入探讨“拦截器记录日志”的概念和实现方式。 日志记录是...

    日志记录文件与压缩上传服务器

    本文将深入探讨日志记录文件的生成、压缩处理,以及如何将其安全有效地上传到阿里云对象存储服务(OSS),最后还会涉及上传成功后的本地文件删除策略。 1、日志记录:日志记录是程序运行过程中产生的详细信息,包括...

    JSPSmart系统-权限管理与日志记录模块的设计与开发(源代码+论文).zip

    4. Log4j或Logback:作为日志记录工具,它们提供了丰富的日志级别和输出配置,便于调试和问题追踪。 5. MVC模式:模型-视图-控制器设计模式,使系统结构清晰,便于维护和扩展。 四、源代码分析 通过分析源代码,...

    AOP的例子 记录日志

    通过Spring AOP,我们可以方便地在不修改原有业务逻辑的情况下,添加日志记录功能。这不仅提高了代码的整洁度,还使得横切关注点的管理和维护变得更加容易。在实际开发中,AOP的应用远不止日志记录,还包括性能监控...

    日志记录实例

    在IT行业中,日志记录是一项至关重要的任务,它有助于开发者追踪和诊断软件系统中的问题,优化性能,并确保系统的稳定运行。日志记录实例通常涉及到如何有效地记录、存储和分析应用程序生成的各种信息。在这个名为...

    Delphi应用程序日志写入系统日志

    在IT行业中,日志记录是软件开发中的一个关键部分,它可以帮助开发者追踪程序运行状态、定位错误和异常,以及优化性能。本主题聚焦于使用Delphi编程语言将应用程序日志写入系统日志,这对于系统管理和故障排查尤其...

    thinkphp6自定义日志记录

    本文将详细探讨在ThinkPHP6中如何自定义日志记录。 首先,理解ThinkPHP6的日志系统。框架默认集成了多种日志处理器,如文件日志、数据库日志等,可以根据项目需求选择合适的处理器。日志级别包括DEBUG、INFO、...

    JAVA实现通用日志记录方法

    本篇文章将深入探讨如何在Java中实现通用日志记录方法,重点介绍使用面向切面编程(Aspect-Oriented Programming,简称AOP)的实践技巧。 在Java中,日志记录通常涉及两个方面:一是系统层面的日志记录,二是操作...

    Spring aop 记录操作日志 Aspect 源码

    在IT行业中,Spring AOP(面向切面编程)是一种强大的工具,它允许我们在代码中实现横切关注点,如日志记录、权限控制等,而无需侵入业务逻辑。本篇将深入探讨如何使用Spring AOP来记录操作日志,并通过自定义Aspect...

    使用使用切面的方式记录日志springMvc + hibernate

    我们可以通过定义切面(Aspect),指定切点(Pointcut)来标识需要拦截的方法,并定义通知(Advice)来执行实际的日志记录逻辑。通知可以是在方法调用前、后或异常发生时执行。 接下来,**Hibernate**是一个对象...

    spring.net结合三层AOP异常日志记录功能

    在本示例中,我们将探讨如何利用Spring.NET在三层架构中实现AOP异常日志记录功能。 1. **三层架构**:在软件开发中,三层架构是一种常见的设计模式,包括表示层、业务逻辑层和数据访问层。表示层负责用户交互,业务...

Global site tag (gtag.js) - Google Analytics