Esempio n. 1
0
 /// <summary>
 /// 记录错误日志
 /// </summary>
 private void LogWriter()
 {
     // 开启一个线程,扫描异常信息队列
     System.Threading.ThreadPool.QueueUserWorkItem(a =>
     {
         while (true)
         {
             // 检查队列中是否存在数据
             if (ErrorHandlingMiddleware.ExceptionQueue.Count > 0)
             {
                 // 将异常对象从队列中拿出来
                 Exception exception = ErrorHandlingMiddleware.ExceptionQueue.Dequeue();
                 // 若异常对象不为空则记录日志
                 if (null != exception)
                 {
                     // 记录错误到日志文件
                     NLogHelper.Write("execption", exception.ToString());
                 }
                 else
                 {
                     // 若异常对象为空则休眠三秒钟
                     System.Threading.Thread.Sleep(3000);
                 }
             }
             else
             {
                 // 若队列中没有数据则休眠三秒钟
                 System.Threading.Thread.Sleep(3000);
             }
         }
     });
 }