【问题标题】:Log4Net: logging all unhandled exceptions in C# class library projectLog4Net:在 C# 类库项目中记录所有未处理的异常
【发布时间】:2018-11-02 12:23:03
【问题描述】:

我有一个 C# 类库项目,即使我不使用 try catch 块,我也需要捕获我的类中所有未处理的异常。 注意:我已经用 log4net.config 安装了 log4net,它可以在 Debug、Info、Error 中手动记录日志。

你能帮帮我吗?

谢谢

【问题讨论】:

  • 您使用的是什么类型的技术?例如,如果是 asp.net,您可以在 global.asax 中输入 application_error。
  • 检查这个全局错误处理程序:stackoverflow.com/questions/17872620/…
  • 我正在使用 asp.net c# 类库项目,我的项目中没有 global.asax 文件。如果我不在网络环境中,我可以添加它吗?
  • @HanyHabib 我正在使用 asp.net c# 类库项目,我的项目中没有 global.asax 文件。如果我不在网络环境中,我可以添加它吗?

标签: c# exception logging log4net unhandled


【解决方案1】:

我也必须这样做,this post 很有帮助。 唯一的缺点是您最终可能会记录太多异常。由于您说您正在编写一个类库,根据将使用您的库的应用程序,您可能不想捕获应用程序抛出的所有异常。要解决此问题,我建议您执行以下操作:

AppDomain.CurrentDomain.FirstChanceException += (sender, e) => {
    if (e.Exception.TargetSite.DeclaringType.Assembly == Assembly.GetExecutingAssembly())
    {
        logger.ErrorFormat("Exception Thrown: {0}\n{1}", e.Exception.Message, e.Exception.StackTrace);
    }
};

这样,您只会从代码中捕获异常。希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    相关资源
    最近更新 更多