Log4net:仅记录异常的上下文

发布于 2024-07-25 16:59:41 字数 374 浏览 3 评论 0原文

我正在寻找一种方法来收集一组仅用于调试的数据。 即,仅当我记录异常时才应记录数据。 当我收到带有 ILog.ErrorFatalDebug 的异常参数时,我想记录额外的信息。 当记录其他异常数据时,不应记录额外的信息。

我计划使用 GlobalContext 或 ThreadContext 来构建数据集。

我的想法是连接到 Log4Net 并附加到我想象的事件,以更改消息模式以包含上下文,但我找不到任何对我有帮助的事件。 也许有更简单的方法?

您觉得这个整体设计怎么样? 我走在正确的轨道上还是错过了什么?

如果这个方法好的话,我该如何实施呢?

I'm looking for a way to collect a set of data that will only be used for debugging. I.e., the data should only be logged if I log an exception. When I get an exception argument with ILog.Error, Fatal or Debug I want to log the extra information. When logging other data with an exception, the extra information should not be logged.

I plan to use the GlobalContext or ThreadContext for building the dataset.

My idea was to hook into Log4Net and attach to an event I would imagine, to alter the message pattern to include contexts, but I can't find any event that would help me. Perhaps there is an easier way?

What do you think about the overall design of this? Am I on the right track or am I missing something?

If this way is good, how can I implement it?

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

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

发布评论

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

评论(1

纸伞微斜 2024-08-01 16:59:41

挂钩并改变模式感觉不太对劲。 我建议看看过滤器的东西。 因此,您将设置使用 MessagesWithExceptionOnly 过滤器的“ForMessagesWithExceptionsOnly”附加程序。 该附加程序当然只会处理包含异常的消息。

要实现 MessagesWithExceptionOnly 过滤器,请查看 FilterSkeleton

Hooking in and changing the pattern doesn't feel quite right. I would suggest looking at the filter stuff. So you would set up your "ForMessagesWithExceptionsOnly" appender which uses the MessagesWithExceptionOnly filter. This appender would ofcourse only process messages that contains an exception.

To implement your MessagesWithExceptionOnly filter, have a look at FilterSkeleton.

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