请问有关编写系统日至的设计模式。

killerwc 2003-01-13 10:10:23
系统因该有编写系统日至的功能
纪录用户每一次数据库访问、文件上传、下载、跨权限访问等情况
请问大家在多层结构中怎样设计实现系统日至的编写功能
有没有人应用工厂、适配器等模型?
希望大家畅所欲言,谈谈自己的做法
讨论一下,到底怎样做合理一些
谢谢大家
...全文
29 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
turbochen 2003-08-22
  • 打赏
  • 举报
回复
Aspect 技术可以很好的解决这一问题。
killerwc 2003-01-16
  • 打赏
  • 举报
回复
看来这个问题比较敏感,呵呵
yohomonkey 2003-01-14
  • 打赏
  • 举报
回复
学习!
悟空师傅来了 2003-01-14
  • 打赏
  • 举报
回复
你的留言我已经看到了!没关系的!^_^!
ZHANG9652 2003-01-14
  • 打赏
  • 举报
回复
关注
dotAge 2003-01-14
  • 打赏
  • 举报
回复
最理想的方法是用HOOK(挂钩)技术,当某类某方法一运行就被截过来,但在VB.NET/C#中是否能/如何使用这一技术,我还不清楚,并且我想实际运用也会存在一些细节问题。
sqhua 2003-01-13
  • 打赏
  • 举报
回复
在《程序员》中好象有过讨论,不过并没得出结果
方法大概有:
全局函数
基类方法,子类继承
单独一个Log类,提供静态方法供大家使用(类似全局函数)
单独一个Log类,其它类把它当做成员变量

对于只用记录某一层的日志,可以用基类方法;
而对于多层结构的系统,每一层都要记录的话,上述方法都不好用。
《程序员》中提到了一个名为“切片”技术的日志方法,说它可以纵向把系统结构“切开”,有别于OO中的横向结构。不过我没看明白里边说的方法 ;(

下边说我的方法:
》》纪录用户每一次数据库访问
直接在数据层的访问接口记录下SQL语句就可以了,这个访问接口是唯一的,所有的数据库操作都经过此

》》跨权限访问
在“权限校验类”(这个类是自己写的)中进行记录,所有的界面操作都会经过权限的判断
》》文件上传、下载
同上

大体就是,每种操作都有专门的模块,该模块就记录下自己的东西,再由另一个日志模块分析出各模块写出的系统日志
didibaba 2003-01-13
  • 打赏
  • 举报
回复
同意 shuncy(天才笨蛋)的看法,有点补充:
做个解析sql query的类:update那张表=做了某某事情、insert=做了某某事情……在每次数据库操作的时候都将解析出来的事务+用户信息放到一张表里,这样只用维护解析sql query的类和放日志的表。
规矩全在解析sqlquery的类中,自己想怎么定义都可以。
spring_ok 2003-01-13
  • 打赏
  • 举报
回复
可以直接使用 windows 的event log来记录志。

请查帮助中 eventlog 类的说明。
示例的链接:
ms-help://MS.VSCC/MS.MSDNVS/Cpqstart/html/cpsmpnetsamples-howtodiagnostics.htm#cpsmploginfosample
wolve 2003-01-13
  • 打赏
  • 举报
回复
我觉得应用程序本身就有比较完善的日志功能,可以考虑编程把有用的日志取出来分析。
cnuninet 2003-01-13
  • 打赏
  • 举报
回复
数据库本身就有跟踪的功能啊,比如Oracle.可以设置让Oracle自动记录所做的操作。
killerwc 2003-01-13
  • 打赏
  • 举报
回复
谢谢楼上的回复
我觉得写系统日至,应该不是在业务类中添加代码来实现的
而是在业务类的通用基类中
如果写在业务类中
根据所处理的业务在不同的业务类中添加日至的编写代码就可以了
我觉得如果系统日至的编写对于编写业务类的程序员是透明的话
效果会更好一些
关于设计模式,在这里很少有人讨论
希望各位高手不吝赐教
shuncy 2003-01-13
  • 打赏
  • 举报
回复
而且查看日志可以对系统的运行情况一目了然,对于一些安全性较强的系统的确应该采用.
至于实现嘛,我想如果要记录用户每一次数据库访问的话,就得在每一个与数据有关的操作(查询,修改,删除,添加)处新增一个写日志的SQL语句,将相应的操作信息写入日志表中.包括用户名,ID,操作方法(SQL语句或其它)等等字段,要便于日志信息维护.不知道还有没有更简单的方法?
对于文件上传,下载,跨权限访问这个应该是在系统里面设置的吧,还是要记录相应的访问信息??
以上为小弟愚见,继续观注中
killerwc 2003-01-13
  • 打赏
  • 举报
回复
系统日至应该还是很有用的
尤其对于一些业务性比较强的系统
有些放到数据库中,有些放到服务器系统日至中
对于管理员,应该是必需的吧
而且目前中国的公司老总都希望他们是全公司权利最大的
什么都能管,什么都有最大权限
呵呵
xhan2000 2003-01-13
  • 打赏
  • 举报
回复
这个模式很好

不过系统日志感觉用处不太大
sqhua 2003-01-13
  • 打赏
  • 举报
回复
这里有提到一点:

http://www.csdn.net/news/newstopic/9/9048.shtml

转贴部分:
OO技术的一大局限性就是:它对软件职责的划分是“垂直”的。在一个标准的对象继承体系中,每一株继承树负责软件系统中一个特定部分的功能,对象的行为是在编译期决定的。但是,在实际问题中,常常有一些“水平”的功能需求,例如:一个容器(container)对象应该可以容纳各种各样的对象;一个日志(logger)对象应该可以记录所有对象的行为。
悟空师傅来了 2003-01-13
  • 打赏
  • 举报
回复
写一个web server,在每一个需要记录日志的地方调用他(一般都是对数据库操作时)。
web server实现的功能就是把传过来的值插入到日志表中。
killerwc 2003-01-13
  • 打赏
  • 举报
回复
楼上:你说的正是我所设想的方法
设计一个(或者多个,用于访问不同类型的日至,系统日至,数据库自定义日至等)基类,提供日至编写的底层的属性和方法
然后再不同的业务类的基类中(数据库访问类、权限校验类等)
继承或者引用这个日至基类,编写相关通用方法调用日至基类中的属性和方法
业务类继承或者引用业务基类
在业务类编程中的日至访问是透明的,由业务基类完成
但是这始终是一种“推”的模式
请各位高手就这种方法提出意见
还有没有其他的方法呢?
谢谢
angel_lee 2003-01-13
  • 打赏
  • 举报
回复
关注:)
英文版:Expert Spring MVC and Web Flow 内容简介 《深入解析Spring MVCgn Web Flow》是Spring MVC 和Web Flow 两个框架的权威指南,书中包括的技巧和提示可以让你从这个灵活的框架中汲取尽可能多的信息。书中包含了一些开发良好设计和解耦的Web 应用程序的最佳实践,介绍了Spring 框架中的Spring MVC 和Spring Web Flow,以及着重介绍利用Spring 框架和Spring MVC 编写Web 应用程序的最佳方法。《深入解析Spring MVCgn Web Flow》还介绍了Spring 框架的设计模式,以及如何将同样的设计和技术应用到读者自己的代码中。 《深入解析Spring MVCgn Web Flow》适合各层次Spring Web 程序员阅读。 编辑推荐 《深入解析Spring MVCgn Web Flow》来自Spring开发团队的权威之作前所未有地深入剖析Spring MVC技术内幕大量专家经验和技巧,全面提升你的Web开发境界 Spring MVC和Spring Web Flow是Spring平台上两个极为灵活而且功能强大的Web框架。前者是构建在Spring框架上的Web应用程序框架,可以同许多其他视图技术无缝集成;后者是控制业务处理流程的有效解决方案,提供了一种编写有状态和基于会话的Web应用程序的简便手段。 《深入解析Spring MVCgn Web Flow》出自Spring核心开发者之手,不仅详细分析代码,全面剖析了两个框架的各种特性(包括一些不为人知的技术亮点)。告诉读者如何最大程度地发挥出它们的潜力。还解密了设计这两个框架时的许多决策内幕、所应用的设计模式和面向对象技术,使读者能够更深入地了解Spring。并在自己的项目中运用这些专家技术,全面提升自己的Web开发境界。 《深入解析Spring MVCgn Web Flow》由spring框架的开发和维护者SpringSource公司组织编写,作者均为资深Spring工程师或咨询师。 Seth Ladd是资深Spring培训师,曾为NEC公司等许多国际性机构构建Web系统。Darren Davison和StevenDevijver都曾是Spring核心开发人员,在Spring源代码和文档中可以很容易地找到他们的名字。而Colin Yates、Keith Donald和Rob Harrop均是SpringSource资深工程师,仍然是Spring新版本开发的核心骨干。Yalcs是.J2EE主架构师,Donald是SpringWeb Flow负责人,Hartop是Spring与Tomcat成产品负责人。“《深入解析Spring MVCgn Web Flow》为Spring社区弥补了一大空白。” ——Lasse Koskela.JavaRanch版主,Test Driven作者“《深入解析Spring MVCgn Web Flow》是非常急缺的深入讲解Spring MVCf~~Spring Web Flow的图书堪与Pro Spring相媲美。” ——Steve Anglin,资深Java技术专家
Design Patterns: Elements of Reusable Object-Oriented Software(以下简称《设计模式》),一书由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides合著(Addison-Wesley,1995)。这四位作者常被称为“四人组(Gang of Four)”,而这本书也就被称为“四人组(或 GoF)”书。他们首次给我们总结出一套软件开发可以反复使用的经验,帮助我们提高代码的可重用性、系统的可维护性等,解决软件开发中的复杂问题。设计模式已诞生20多年,其间相继出版的关于设计模式的经典著作不计其数。如果说GoF的《设计模式》是设计模式领域的“圣经”,那么之后出版的各种关于设计模式的书籍可称为“圣经”的“批注版”或者“白话版”。本书正是基于GoF的《设计模式》来编写的。  本课程由《设计模式就该这样学》作者亲授,课程内容和书籍完全同步,可以作为作者对“圣经”实践的精华总结,是一门可以真正能够落地的“设计模式”的课程,也是目前全网唯一一门结合框架源码如何落地“设计模式”这个角度来理解设计模式的课程。本课程将结合JDK、Spring、MyBatis、Tomcat、Netty等经典框架源码展开对设计模式的分析。当然,本课程中还会结合作者多年的“踩坑填坑”经验和“教学答疑”经验,用比“圣经”更深刻、更全面、更通俗、更生动、更有趣、更接地气的方式并且结合真实业务场景分析每种设计模式的优缺点,治愈“设计模式选择困难症”。选设计模式就像相亲选对象,一旦做好了接受TA缺点的准备,那TA就一定属于你。所以,本课程内容对于日常开发而言更具有指导意义。内容均从实战角度出发,在日常应用中,设计模式从来都不是单个设计模式独立使用的。在实际应用中,通常多个设计模式混合使用,你中有我,我中有你。下图完整地描述了设计模式之间的混用关系,希望对大家有所帮助。在《设计模式就该这样学》一书中,还有大量的UML图及易混淆的设计模式对比案例分析,也欢迎大家关注。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧