C#自定义异常处理类1【转载】

转载 2012年03月27日 14:54:24
 

//自定义异常处理类
using System;
using System.Diagnostics;

namespace MyAppException
{
 
/// <summary>
 
/// 从系统异常类ApplicationException继承的应用程序异常处理类。
 
/// 自动将异常内容记录到Windows NT/2000的应用程序日志
 
/// </summary>
 public class AppException:System.ApplicationException
 {
  
public AppException()
  {
   
if (ApplicationConfiguration.EventLogEnabled)LogEvent("出现一个未知错误。");
  }

 
public AppException(string message)
 {
  LogEvent(message);
 }

 
public AppException(string message,Exception innerException)
 {
  LogEvent(message);
  
if (innerException != null)
  {
   LogEvent(innerException.Message);
  }
 }
}
}

//日志记录类
 using System;
 
using System.Configuration;
 
using System.Diagnostics;
 
using System.IO;
 
using System.Text;
 
using System.Threading;

 
namespace MyEventLog
 {
  
/// <summary>
  
/// 事件日志记录类,提供事件日志记录支持
  
/// <remarks>
  
/// 定义了4个日志记录方法 (error, warning, info, trace)
  
/// </remarks>
  
/// </summary>
  public class ApplicationLog
  {
   
/// <summary>
   
/// 将错误信息记录到Win2000/NT事件日志中
   
/// <param name="message">需要记录的文本信息</param>
   
/// </summary>
   public static void WriteError(String message)
   {
    WriteLog(TraceLevel.Error, message);
   }

   
/// <summary>
   
/// 将警告信息记录到Win2000/NT事件日志中
   
/// <param name="message">需要记录的文本信息</param>
   
/// </summary>
   public static void WriteWarning(String message)
   {
    WriteLog(TraceLevel.Warning, message);  
   }

   
/// <summary>
   
/// 将提示信息记录到Win2000/NT事件日志中
   
/// <param name="message">需要记录的文本信息</param>
   
/// </summary>
   public static void WriteInfo(String message)
   {
    WriteLog(TraceLevel.Info, message);
   }
   
/// <summary>
   
/// 将跟踪信息记录到Win2000/NT事件日志中
   
/// <param name="message">需要记录的文本信息</param>
   
/// </summary>
   public static void WriteTrace(String message)
   {
    WriteLog(TraceLevel.Verbose, message);
   }

   
/// <summary>
   
/// 格式化记录到事件日志的文本信息格式
   
/// <param name="ex">需要格式化的异常对象</param>
   
/// <param name="catchInfo">异常信息标题字符串.</param>
   
/// <retvalue>
   
/// <para>格式后的异常信息字符串,包括异常内容和跟踪堆栈.</para>
   
/// </retvalue>
   
/// </summary>
   public static String FormatException(Exception ex, String catchInfo)
   {
    StringBuilder strBuilder
= new StringBuilder();
    
if (catchInfo != String.Empty)
    {
     strBuilder.Append(catchInfo).Append(
"\r\n");
    }
    strBuilder.Append(ex.Message).Append(
"\r\n").Append(ex.StackTrace);
    
return strBuilder.ToString();
   }

   
/// <summary>
   
/// 实际事件日志写入方法
   
/// <param name="level">要记录信息的级别(error,warning,info,trace).</param>
   
/// <param name="messageText">要记录的文本.</param>
   
/// </summary>
   private static void WriteLog(TraceLevel level, String messageText)
   {
    
try
    {
     EventLogEntryType LogEntryType;
     
switch (level)
     {
      
case TraceLevel.Error:
       LogEntryType
= EventLogEntryType.Error;
       
break;
      
case TraceLevel.Warning:
       LogEntryType
= EventLogEntryType.Warning;
       
break;
      
case TraceLevel.Info:
       LogEntryType
= EventLogEntryType.Information;
       
break;
      
case TraceLevel.Verbose:
       LogEntryType
= EventLogEntryType.SuccessAudit;
       
break;
      
default:
       LogEntryType
= EventLogEntryType.SuccessAudit;
       
break;
     }

     EventLog eventLog
= new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
     
//写入事件日志
     eventLog.WriteEntry(messageText, LogEntryType);

    }
   
catch {} //忽略任何异常
  }
 }
//class ApplicationLog
}


相关文章推荐

C#自定义异常处理

using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; nam...

C++ /python/java /C# 自定义异常处理

http://www.runoob.com/ C++ 实例 finally 标准C++没有。 您可以通过继承和重载 exception 类来定义新的异常。下面的实例演示了如何使用 std::excep...

VS自定义异常处理窗口

  • 2017年07月17日 12:11
  • 37KB
  • 下载

Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志

在使用SimpleMappingExceptionResolver实现统一异常处理后(参考Spring MVC的异常统一处理方法),发现出现异常时,log4j无法在控制台输出错误日志。因此需要自定义一...

Java自定义异常处理

  • 2012年06月27日 11:39
  • 141KB
  • 下载

Python学习17:异常处理(三)自定义异常类

根据实际情况定义自己需要的异常,
  • jiezhj
  • jiezhj
  • 2014年07月24日 16:57
  • 881

C#文件读写类(包括异常处理)

  • 2009年07月01日 18:29
  • 3KB
  • 下载

Springboot自定义异常处理

背景Springboot 默认把异常的处理集中到一个ModelAndView中了,但项目的实际过程中,这样做,并不能满足我们的要求。具体的自定义异常的处理,参看以下前提 Springboot 默认的a...

springmvc的自定义异常处理

一、自定义异常类:对于不同的异常类型定义异常类,继承Exception CustomException.java package com.sky.ssm.exception; /** * 系...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#自定义异常处理类1【转载】
举报原因:
原因补充:

(最多只允许输入30个字)