C# 面向切面编程--监控日志记录方案

上传者: hirisw | 上传时间: 2021-08-02 08:58:26 | 文件大小: 105KB | 文件类型: RAR
对于所有需要进行日志记录的方法的采用对该方法所在的类进行动态代理的方式处理。在代理方法中的在原有方法的前后新增日志记录,动态代理采用装饰器模式实现通常称为AOP,AOP方面的内容请参阅: https://msdn.microsoft.com/zh-cn/library/dn574804.aspx 。以上是对已经存在的类的方法进行日志记录采用动态代理该类,对于方法内部的某个地方进行日志记录的,采用动态代理Stopwatch来实现。因为方法内部的日志一般都要统计时间长度,动态代理Stopwatch的Start方法和Stop方法,在Start和Stop调用的时后记录出方法的执行时间和中间参变量的值。

文件下载

资源详情

[{"title":"( 50 个子文件 105KB ) C# 面向切面编程--监控日志记录方案","children":[{"title":"3vjDemoForLog","children":[{"title":".vs","children":[{"title":"3vjDemoForLog","children":[{"title":"v14","children":[{"title":".suo <span style='color:#111;'> 64.00KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"DynamicProxyFactory","children":[{"title":"bin","children":[{"title":"Debug","children":[{"title":"DynamicProxyFactory.pdb <span style='color:#111;'> 31.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.exe <span style='color:#111;'> 12.00KB </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.dll <span style='color:#111;'> 12.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.pdb <span style='color:#111;'> 33.50KB </span>","children":null,"spread":false}],"spread":true},{"title":"Release","children":null,"spread":false}],"spread":true},{"title":"DynamicProxyInfo.cs <span style='color:#111;'> 720B </span>","children":null,"spread":false},{"title":"obj","children":[{"title":"Debug","children":[{"title":"DynamicProxyFactory.csprojResolveAssemblyReference.cache <span style='color:#111;'> 10.02KB </span>","children":null,"spread":false},{"title":"TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs <span style='color:#111;'> 0B </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.pdb <span style='color:#111;'> 31.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.csproj.FileListAbsolute.txt <span style='color:#111;'> 1019B </span>","children":null,"spread":false},{"title":"DesignTimeResolveAssemblyReferencesInput.cache <span style='color:#111;'> 6.64KB </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.dll <span style='color:#111;'> 12.50KB </span>","children":null,"spread":false},{"title":"TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs <span style='color:#111;'> 0B </span>","children":null,"spread":false},{"title":"TempPE","children":null,"spread":false},{"title":"TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs <span style='color:#111;'> 0B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Properties","children":[{"title":"AssemblyInfo.cs <span style='color:#111;'> 1.42KB </span>","children":null,"spread":false}],"spread":true},{"title":"CustomerLoggerFactory.cs <span style='color:#111;'> 4.70KB </span>","children":null,"spread":false},{"title":"StopwatchFactory.cs <span style='color:#111;'> 6.68KB </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.cs <span style='color:#111;'> 4.58KB </span>","children":null,"spread":false},{"title":"DynamicProxy.cs <span style='color:#111;'> 3.01KB </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.csproj <span style='color:#111;'> 2.84KB </span>","children":null,"spread":false}],"spread":true},{"title":"3vjDemoForLog.sln <span style='color:#111;'> 1.51KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication","children":[{"title":"Person.cs <span style='color:#111;'> 452B </span>","children":null,"spread":false},{"title":"IStopwatch.cs <span style='color:#111;'> 375B </span>","children":null,"spread":false},{"title":"Customer.cs <span style='color:#111;'> 3.15KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.csproj <span style='color:#111;'> 3.01KB </span>","children":null,"spread":false},{"title":"bin","children":[{"title":"Debug","children":[{"title":"DynamicProxyApplication.vshost.exe.manifest <span style='color:#111;'> 490B </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.pdb <span style='color:#111;'> 31.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.vshost.exe <span style='color:#111;'> 22.16KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.vshost.exe.config <span style='color:#111;'> 189B </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.exe <span style='color:#111;'> 11.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyFactory.dll <span style='color:#111;'> 12.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.pdb <span style='color:#111;'> 33.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.exe.config <span style='color:#111;'> 189B </span>","children":null,"spread":false}],"spread":true},{"title":"Release","children":null,"spread":false}],"spread":true},{"title":"ObjectPoolAdder.cs <span style='color:#111;'> 2.71KB </span>","children":null,"spread":false},{"title":"ObjectPool.cs <span style='color:#111;'> 443B </span>","children":null,"spread":false},{"title":"obj","children":[{"title":"Debug","children":[{"title":"DynamicProxyApplication.csprojResolveAssemblyReference.cache <span style='color:#111;'> 1.88KB </span>","children":null,"spread":false},{"title":"TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs <span style='color:#111;'> 0B </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.exe <span style='color:#111;'> 11.50KB </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.csproj.FileListAbsolute.txt <span style='color:#111;'> 1001B </span>","children":null,"spread":false},{"title":"DesignTimeResolveAssemblyReferencesInput.cache <span style='color:#111;'> 6.62KB </span>","children":null,"spread":false},{"title":"TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs <span style='color:#111;'> 0B </span>","children":null,"spread":false},{"title":"TempPE","children":null,"spread":false},{"title":"TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs <span style='color:#111;'> 0B </span>","children":null,"spread":false},{"title":"DynamicProxyApplication.pdb <span style='color:#111;'> 33.50KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Properties","children":[{"title":"AssemblyInfo.cs <span style='color:#111;'> 1.42KB </span>","children":null,"spread":false}],"spread":true},{"title":"Program.cs <span style='color:#111;'> 1.06KB </span>","children":null,"spread":false},{"title":"ICreator.cs <span style='color:#111;'> 208B </span>","children":null,"spread":false},{"title":"App.config <span style='color:#111;'> 189B </span>","children":null,"spread":false},{"title":"Clazz.cs <span style='color:#111;'> 845B </span>","children":null,"spread":false},{"title":"ILoggerCustomer.cs <span style='color:#111;'> 347B </span>","children":null,"spread":false},{"title":"StopwatchDecorater.cs <span style='color:#111;'> 737B </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}]

评论信息

  • kangkang18185 :
    面向切面编程,刚刚好需要,薛系学习
    2021-02-03
  • ochangjianghuanghe :
    垃圾垃圾垃圾
    2019-06-05

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明