c# - 在类库级别捕获 C# 错误

标签 c# logging exception class-library

我正在尝试为企业级类库制定错误记录解决方案。一些要求:

  • 它将被多个端点应用程序使用(因此它应该在类库中处理)
  • 它应该将其数据放入 SQL Server 数据库以便于存储。这也进入第三个:
  • 它应该能够支持自定义网络应用程序读取其数据。

还有一个要求,那就是“非常好”。也就是说,它并不重要,但如果它不可行,我最好有一个很好的理由。

  • 在其端点应用程序中不应要求专门的 Logger 对象。他们应该能够简单地抛出异常,日志软件应该从那里处理事情。不过,拥有特定的 USING 命令是符合犹太洁食标准的。

综合考虑,前三点并不难。一个快速的日志记录类和一些存储过程,中午就结束了,对吧?不过,最后一点是我不知道如何处理的。我以前在一个 friend 的代码中看到过它,所以我知道这是可能的,但不幸的是,那个 friend 已经去世了,他的代码丢失了。有没有人可以指出让类库对象以某种方式捕获端点应用程序出现的所有错误来处理它们的正确方向?

最佳答案

如果您想要捕获所有不是源自您自己的调用堆栈的未处理异常,您可以考虑使用 AppDomain对象:

AppDomain.CurrentDomain.UnhandledException += (s, e) => {
    // Your logging logic
};

AppDomain.CurrentDomain.FirstChanceException += (s, e) => {
    // Your logging logic
};

关于c# - 在类库级别捕获 C# 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5903708/

相关文章:

java - ExceptionMapper 的 Jersey/Jackson 异常问题

c# - BsonDocument 到动态表达式或结果的内存缓存

c# - uwp 延迟加载图像源

sql-server - 将 c# 模型类参数调用限制为不存在的表字段的 MS SQL 服务器

java - 为什么Throwable::printStackTrace持有PrintStream锁并导致回退死锁

c# - 如何将 SqlException 消息操作为用户友好的消息

c# - Visual Studio 2013 Rdlc - 如何显示导航属性中的值

bash - ack(-grep) 有哪些颜色选项用于输出、日志等的着色?

Android 通过 Crashlytics 发送完整的堆栈跟踪

ruby - 从不同的地方重新提出 ruby 异常