幸福框架:用户想看到的操作日志也要使用AOP吗?
2013-07-12 09:10
330 查看
背景
日志无论是对于开发人员、运维人员和最终用户都是一笔财富,是不是所有类型的日志都要AOP呢?本着交流的目的,这里先说一些看法,希望大家多批评。常见的日志类型
异常日志
概念:记录异常的日志。考虑:日志框架需要对不同的异常采用不同的日志方式,比如:那些为了向UI层返回消息的异常是不用记录到日志的,对于未期望异常也需要有不同的日志输入方式。
方式:AOP,适合在边界类使用(靠近系统边界的地方)。
事务:不需要参与业务事务。
服务对象:开发人员、运维人员。
示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.Mvc; using Common.Logging; using Happy.Web.Mvc.Newtonsoft; namespace Happy.Web.Mvc.ExceptionHanding { /// <summary> /// 处理应用程序未捕获的异常。 /// </summary> [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] public class WriteExceptionResultAttribute : FilterAttribute, IExceptionFilter { /// <inheritdoc /> public void OnException(ExceptionContext filterContext) { var exception = filterContext.Exception; this.LogException(exception); filterContext.Result = ExceptionInformationProviderRegistry.CreateErrorResult(exception); filterContext.ExceptionHandled = true; } private void LogException(Exception exception) { if (FriendlyExceptionRegistry.Contains(exception.GetType())) { return; } LogManager.GetCurrentClassLogger().Error(exception); } } }
操作日志
概念:记录用户操作的日志。考虑:这类日志的格式很难统一,每个操作都需要自己的消息格式和参数,因为最终用户要看,还需要提供友好的界面。
方式:帮助方法,适合在应用层使用。
事务:要参与业务事务。
服务对象:运维人员、最终用户。
示例:省略。
性能监控日志、程序状态跟踪等
概念:记录开发人员感兴趣的任何内容。考虑:监控的级别可能是整个业务事务或某一层的调用,甚至是某个方法。
方式:AOP或帮助方法。
事务:不要参与业务事务。
服务对象:运维人员、开发人员。
示例:省略。
备注
系统设计的时候最好就确定日志的需求。相关文章推荐
- 微软企业库5.0 学习之路——第九步、使用PolicyInjection模块进行AOP—PART4——建立自定义Call Handler实现用户操作日志记录
- [EntLib]微软企业库5.0 学习之路——第九步、使用PolicyInjection模块进行AOP—PART4——建立自定义Call Handler实现用户操作日志记录
- 使用Spring AOP使用注解记录用户操作日志
- SSM使用AOP切面获取用户登录操作日志
- 幸福框架:我是如何使用日志的
- 通过SpringAOP获取request中所有参数,记录用户操作日志
- 开发日志:使用Asp.Net中的"Forms"验证方式,操作用户权限
- 使用logmnr对其它用户的操作执行日志挖掘的四个对比实验
- springMVC +Mybatis +spring aop 实现用户系统操作日志记录
- AOP实现用户操作日志记录
- 基于AOP的iOS用户操作引导框架设计
- AOP实战---对用户/角色/规则操作日志记录
- springAOP记录用户操作日志
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- 基于AOP的iOS用户操作引导框架设计
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- 基于Spring AOP和Groovy日志模板配置的日志记录框架的二次实现与使用案例
- 使用拦截器(intercept)和AOP写操作日志-springboot
- 网狐荣耀版vs生成解决方案时出现“出现未能写入日志,请求的操作无法在使用用户映射区域打开的文件上执行“错误
- 利用spring AOP记录用户操作日志的方法示例