【问题标题】:Application global Error Logger应用程序全局错误记录器
【发布时间】:2010-09-04 20:18:06
【问题描述】:

在处理 vb.net 应用程序时,异常处理不佳。这是一个很大的痛苦。所以一个想法闪过,如果有可能生成一个库或服务或某种 exe,它将记录应用程序的所有错误,而无需在主机应用程序的某个全局位置编写一行代码/最少的代码。 我知道这听起来有点疯狂,但 Windows 事件记录器也是如此。所以我也是这么想的。让我让我更清楚。假设我有一个应用程序 abc.exe,没有一次尝试捕获。我在使用该应用程序时面临很多错误。现在,我不想深入研究应用程序源代码,而是想编写另一个应用程序,该应用程序将运行并记录该应用程序的所有未处理异常,包括托管和 com 两者。

所以请大师们帮助我。我知道 ApplicationDomain 很有用。我在 MSDN 博客上遇到了一个名叫 Rick 的人或类似的东西,但我没有再抓到了。因此,一些简单的源代码或部分代码会有所帮助。请在您的答案中添加一些示例代码。

这将是一个很大的帮助。

摘要

我想要一个可以将自己注入到任何应用程序中的应用程序,其中放置了 Injector 的程序集。也就是说,如果我有一个应用程序 D:\xyz\myapp\abc.exe ,如果说我将应用程序作为 exe ,那么如果将它放在 myapp 文件夹中,然后在执行 abc.exe 之后,我的错误记录器应用程序将开始工作并将自身注入当前的应用程序域。如果我将其创建为服务,还请告诉我它是否会成为多线程。

【问题讨论】:

  • 它被称为“调试器”。
  • 别忘了标记你最喜欢的答案。

标签: .net exception unhandled-exception applicationdomain


【解决方案1】:

如果我理解正确,您确实有错误处理错误的应用程序的源代码,您可以修改它并重新编译它。

如果是这样,您可能想查看AppDomain.UnhandledException 事件。来自 MSDN 的引用:此事件提供未捕获异常的通知。它允许应用程序在系统默认处理程序向用户报告异常并终止应用程序之前记录有关异常的信息。

如果您访问该链接,那里有一个您需要添加的代码示例,并且它只是几行代码,可以全部放在您应用的一个文件中,因此应该很容易添加。

【讨论】:

    【解决方案2】:

    此 MSDN 页面如何:Log Exceptions in Visual Basic 准确描述了您的需求。总之,它描述了:

    • 如何使用 Visual Basic My.Application.Log 使用 .NET 的内置跟踪侦听器记录异常。
    • 如何在 VB 应用程序中注册UnhandledException Forms Application 事件。
    • 如何注册 Visual Basic 的 FileLogTraceListener 以登录到文件“[User]\Application Data\[CompanyName]\[ProductName]\[ProductVersion][ApplicationName].log”。

    这是一个注册 VB FileLogTraceListener 的应用程序文件配置示例:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <system.diagnostics>
            <sources>
                <source name="DefaultSource" switchName="DefaultSwitch">
                    <listeners>
                        <add name="FileLog"/>
                    </listeners>
                </source>
            </sources>
            <switches>
                <add name="DefaultSwitch" value="Information" />
            </switches>
            <sharedListeners>
                <add name="FileLog"
                    type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 
                    initializeData="FileLogWriter" />
            </sharedListeners>
        </system.diagnostics>
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 2012-02-11
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多