zoukankan      html  css  js  c++  java
  • 请教.Net平台大型业务系统中“日志记录” 的较好解决办法,类似Java下用AOP方式实现的最好

    请教.Net平台大型业务系统中“日志记录” 的较好解决办法,类似Java下用AOP方式实现的最好。

    问题:
    在安全性要求较高的大中型项目中(例如比如系统中有数百个业务表),对业务表的增、删、改操作均需要记录日志,供后台管理员审计用。
    不采用任何设计技巧的话,可能一般人会直接在BLL层ADD、Delete、Update函数中集成日志记录操作,可能的形式是:
    Loger.logit(xxx,xxx,xx)。
    然而,假设业务类数量较为可观时,例如当有200个业务类时,将出现如下问题:
    1)、这个语句将至少出现200*3次。
    2)、logit函数接受的参数可能后期因审计需要会变化。

    问题1导致不同用户的代码耦合在一起,致命的是问题2发生时,将要大量重构BLL层类库,几乎每个文件至少要改动几行,即使logit函数仅仅一句话。
    如果logit函数需要的是引用类型参数,如果日志记录信息较多,则参数初始化的上下文代码也会会比较可观,改动一点都要动200*3处。

    解决办法:
    Java中成熟的AOP技术对于异常处理、日志记录、权限认证问题解决的很彻底,能将这类问题彻底解耦,开发者组做好相关类,配置好就OK了。
    但查了一下目前.NET下成熟的AOP框架好像没有,想过用装饰者模式在BLL的类库体系上做点文章,但是又觉得动了牛刀。

    故抛出此贴,请高手支招!
  • 相关阅读:
    笔记04_正确使用Heterogeneous元件
    java网络通信:伪异步I/O编程(PIO)
    java网络通信:异步非阻塞I/O (NIO)
    lua源码学习篇二:语法分析
    lua源码学习篇三:赋值表达式解析的流程
    java网络通信:netty
    lua源码学习篇一:环境部署
    lua源码学习篇四:字节码指令
    java网络通信:同步阻塞式I/O模型(BIO)
    前端项目开发流程
  • 原文地址:https://www.cnblogs.com/flyingfish/p/1583114.html
Copyright © 2011-2022 走看看