C#自定义异常处理类1【转载】
来源:互联网 发布:nginx conf break 编辑:程序博客网 时间:2024/06/05 18:02
//自定义异常处理类
using System;
using System.Diagnostics;
namespace MyAppException
{
/// <summary>
/// 从系统异常类ApplicationException继承的应用程序异常处理类。
/// 自动将异常内容记录到Windows NT/2000的应用程序日志
/// </summary>
publicclass 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>
publicclass ApplicationLog
{
/// <summary>
/// 将错误信息记录到Win2000/NT事件日志中
/// <param name="message">需要记录的文本信息</param>
/// </summary>
publicstatic void WriteError(String message)
{
WriteLog(TraceLevel.Error, message);
}
/// <summary>
/// 将警告信息记录到Win2000/NT事件日志中
/// <param name="message">需要记录的文本信息</param>
/// </summary>
publicstatic void WriteWarning(String message)
{
WriteLog(TraceLevel.Warning, message);
}
/// <summary>
/// 将提示信息记录到Win2000/NT事件日志中
/// <param name="message">需要记录的文本信息</param>
/// </summary>
publicstatic void WriteInfo(String message)
{
WriteLog(TraceLevel.Info, message);
}
/// <summary>
/// 将跟踪信息记录到Win2000/NT事件日志中
/// <param name="message">需要记录的文本信息</param>
/// </summary>
publicstatic void WriteTrace(String message)
{
WriteLog(TraceLevel.Verbose, message);
}
/// <summary>
/// 格式化记录到事件日志的文本信息格式
/// <param name="ex">需要格式化的异常对象</param>
/// <param name="catchInfo">异常信息标题字符串.</param>
/// <retvalue>
/// <para>格式后的异常信息字符串,包括异常内容和跟踪堆栈.</para>
/// </retvalue>
/// </summary>
publicstatic 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>
privatestatic 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#自定义异常处理类1【转载】
- C#自定义异常处理类2【转载】
- C#自定义异常处理
- C#自定义异常处理
- C#自定义异常处理(自定义例外)
- 自定义异常处理类
- C# 自定义异常类
- c# 自定义异常类
- C#自定义异常类
- 43.自定义异常处理类
- java异常处理之自定义异常类
- java异常处理之自定义异常类
- Python学习--异常处理,自定义异常类
- 自定义异常类(SpringMVC的异常处理)
- C#中自定义异常类
- C#中自定义异常类
- 异常处理+异常+处理异常+自定义异常
- oracle 异常处理(转载)
- MFC下CSocket编程详解
- apache 基于IP、port和域名的三种虚拟主机的配置方法
- 批量将excel/csv数据导入ORACLE表中
- 看懂tomcat输出日志,快速解决代码错误
- jquery中的触发事件的triggle 冒泡事件
- C#自定义异常处理类1【转载】
- Apache日志格式与配置
- HBaseFsck.java
- 不要一辈子靠技术混饭吃
- Black SMS: 高富帅再也不用担心女朋友偷看短信了
- 再探Linux下的TCP延迟确认机制--TCP_QUICKACK
- Linux下查看apache连接数
- Android Spinner example
- 用实例讲DynamicResource与StaticResource的区别