如何将一般异常记录到事件日志中?

发布于 2024-09-10 21:46:12 字数 190 浏览 6 评论 0原文

我有一个 Windows 服务,我需要一个顶级的 try-catch 来捕获任何其他未处理(或冒泡)的异常,将其记录到事件日志中,然后吞掉它,以便服务继续运行。但是,我找不到将异常作为参数的 System.Diagnostics.EventLog.WriteEntry 的任何重载 - 是否没有办法只向事件日志提供异常并让它解析出消息本身?

I have a windows service, in which I want a top level try-catch that catches any otherwise unhandled (or bubbled) exception, logs it to the Event Log and then swallows it so the service keeps running. However, I can't find any overload to System.Diagnostics.EventLog.WriteEntry that takes an exception as a parameter - is there no way to just give the event log the exception and let it parse out the message on its own?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听风念你 2024-09-17 21:46:12

不幸的是,没有标准方法可以将异常传递到内置于 .NET 框架的事件日志。

要以最少的开发工作将异常写入事件日志,您需要编写如下内容:

EventLog myLog = new EventLog();
myLog.Source = "Your Source";
myLog.WriteEntry(exception.ToString(), EventLogEntryType.Error);

但通常您会尝试对异常进行一些格式化。

Unfortunately there is no standard way of just passing the Exception to the Eventlog, built in to the .NET framework.

To have an exception written to the EventLog with the smallest development effort, you would need to write something like:

EventLog myLog = new EventLog();
myLog.Source = "Your Source";
myLog.WriteEntry(exception.ToString(), EventLogEntryType.Error);

But normally you would try to do some formatting of your exception.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文