Asp.net Vnext 自定义日志

概述


 本文已经同步到《Asp.net Vnext 系列教程 》中]

可以通过自定义日志,把错误消息记录到数据库

实现

 


在启动文件Startup Configure方法中加入自定义的日志提供者

            loggerfactory.AddProvider(new CustomLoggerProvider(LogLevel.Debug));

 

日志提供者

  public class CustomLoggerProvider : ILoggerProvider
        {
        //日志级别
        private LogLevel LogLevel;

        public CustomLoggerProvider(LogLevel logLevel)
            {
            this.LogLevel = logLevel;
            }

      

        public ILogger CreateLogger(string name)
            {
            return new CustomLogger(name, LogLevel);
            }
        }

日志接口

  public class CustomLogger : ILogger
        {
        //名字
        public string Name { get; set; }
        public LogLevel LogLevel { get; set; }

        public CustomLogger(string name, LogLevel logLevel)
            {
            Name = name;
            LogLevel = logLevel;
            }

        public IDisposable BeginScope(object state)
            {
            //释放资源 如数据库
            return null;
            }

        //检查日志级别
        public bool IsEnabled(LogLevel logLevel)
            {

        return    true;
          //  return ((int)logLevel >= (int)this.LogLevel);
            }

     

        public void Log(LogLevel logLevel, int eventId, object state, Exception exception, Func<object, Exception, string> formatter)
            {

              var message = formatter(state, exception);
              File.WriteAllText("D:\\222.txt", message);




            }
        }

设置一个异常

运行,查看文件

 

posted @ 2015-07-03 17:49  欢呼雀跃  阅读(526)  评论(0编辑  收藏  举报