Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Exception Log4net:仅用于异常的日志上下文_Exception_Logging_Log4net - Fatal编程技术网

Exception Log4net:仅用于异常的日志上下文

Exception Log4net:仅用于异常的日志上下文,exception,logging,log4net,Exception,Logging,Log4net,我正在寻找一种方法来收集一组只用于调试的数据。即,仅当我记录异常时才应记录数据。当我得到带有ILog.Error、Fatal或Debug的异常参数时,我想记录额外的信息。当记录有异常的其他数据时,不应记录额外的信息 我计划使用GlobalContext或ThreadContext来构建数据集 我的想法是连接到Log4Net并附加到我想象中的事件,改变消息模式以包含上下文,但我找不到任何对我有帮助的事件。也许有更简单的方法 你觉得这个的整体设计怎么样?我是走对了还是错过了什么 如果这种方法很好,我

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

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

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

你觉得这个的整体设计怎么样?我是走对了还是错过了什么


如果这种方法很好,我如何实现它?

挂接和更改模式感觉不太正确。我建议你看看过滤材料。因此,您需要设置“FormMessageWithExceptionsOnly”附加程序,该附加程序使用MessagesWithExceptionOnly筛选器。这个附加器当然只处理包含异常的消息


要实现消息的Exception Only筛选器,请查看。

我不太明白。是否要创建两个具有不同布局模式的附加器,一个用于打印上下文属性,另一个用于仅打印消息。创建两个文件管理器,一个只接受带有异常的loggingevents,另一个拒绝。然后将筛选器添加到相应的appender?这看起来有点麻烦,没错。除了不必创建两个过滤器类之外,您可以在两个附加器上重用同一个过滤器,并且在这两个附加器上仅具有反转的AcceptOnMatch设置。配置可能会多一点,但我认为这是一种更干净的方法。我还怀疑在运行时修改模式会对性能产生影响。