我正在寻找一种方法来收集一组仅用于调试的数据。即,如果我记录异常,则只应记录数据。当我收到ILog.Error
,Fatal
或Debug
的异常参数时,我想记录额外的信息。当记录具有异常的其他数据时,不应记录额外信息。
我打算使用GlobalContext或ThreadContext来构建数据集。
我的想法是挂钩到Log4Net并附加到我想象的事件,改变消息模式以包含上下文,但我找不到任何可以帮助我的事件。也许有一种更简单的方法?
您对此的整体设计有何看法?我是在正确的轨道还是我错过了什么?
如果这种方式很好,我该如何实施呢?
答案 0 :(得分:1)
挂钩并改变图案感觉不太对劲。我建议看过滤器的东西。因此,您将设置使用MessagesWithExceptionOnly过滤器的“ForMessagesWithExceptionsOnly”appender。这个appender只会处理包含异常的消息。
要实现MessagesWithExceptionOnly过滤器,请查看FilterSkeleton。