webapi全局日志方法

来源:互联网 发布:swf文件mac用什么打开 编辑:程序博客网 时间:2024/06/16 17:57


 用ExceptionFilterAttribute来做异常日志的记录,方便定位查找问题原因。


public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();
            config.Filters.Add(new Filters.ApiSecurityFilter());
            config.Filters.Add(new Filters.ApplicationError());//错误日志的过滤器
           

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }



 public class ApplicationError : ExceptionFilterAttribute
    {
        #region IExceptionFilter 成员

        private static readonly object obj = new object();

        public override void OnException(HttpActionExecutedContext filterContext)
        {
            lock (obj)
            {
                var httpContext = filterContext;
                // 在出现未处理的错误时运行的代码
                if (!filterContext.Request.RequestUri.ToString().Contains("."))
                {
                    string logText = "\r\n-------------  异常信息   ---------------------------------------------------------------";
                    logText += "\r\n发生时间:" + DateTime.Now.ToString();
                    logText += "\r\n发生异常页:" + httpContext.Request.RequestUri.ToString();
                    logText += "\r\n异常信息:" + filterContext.Exception.Message;
                    logText += "\r\n错误源:" + filterContext.Exception.Source;
                    logText += "\r\n堆栈信息:" + filterContext.Exception.StackTrace;
                    logText += "\r\n-----------------------------------------------------------------------------------------\r\n";
                    //日志物理路径
                    string path = System.Web.Hosting.HostingEnvironment.MapPath("~/Log/");
                    WebLog.WriteLog(logText, path);

                }
            }
        }
        #endregion
    }

原创粉丝点击