我有一个Windows服务,我需要一个顶级try-catch
来捕获任何其他未处理(或冒泡)的异常,将其记录到事件日志然后吞下它以便服务继续运行。但是,我找不到System.Diagnostics.EventLog.WriteEntry
的任何重载,它将异常作为参数 - 是不是只能给事件日志提供异常并让它自己解析消息?
答案 0 :(得分:1)
不幸的是,没有标准的方法可以将Exception传递给内置于.NET框架的Eventlog。
要以最小的开发工作量将事件写入EventLog,您需要编写如下内容:
EventLog myLog = new EventLog();
myLog.Source = "Your Source";
myLog.WriteEntry(exception.ToString(), EventLogEntryType.Error);
但通常你会尝试对你的异常做一些格式化。