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
C# Serilog动态地丰富上下文_C#_Logging_Serilog - Fatal编程技术网

C# Serilog动态地丰富上下文

C# Serilog动态地丰富上下文,c#,logging,serilog,C#,Logging,Serilog,是否有可能动态覆盖或扩展Serilog中的日志模板 我有一个解析器类,它逐行解析XML,我想用行号扩展日志条目。我已经编写了一个enricher来实现这一点,但我必须在函数开始时全局覆盖默认记录器,并在函数结束时重置它,这甚至很难从编程的角度来看:D Serilog还有什么其他选择,或者我错过了什么吗?经过进一步挖掘,我终于找到了一个适合我需要的解决方案 我使用LogContext.PushProperty机制来推送XmlReader,或者更确切地说是一个包装器对象,因为与解构匹配的类型是精确的

是否有可能动态覆盖或扩展Serilog中的日志模板

我有一个解析器类,它逐行解析XML,我想用行号扩展日志条目。我已经编写了一个enricher来实现这一点,但我必须在函数开始时全局覆盖默认记录器,并在函数结束时重置它,这甚至很难从编程的角度来看:D


Serilog还有什么其他选择,或者我错过了什么吗?

经过进一步挖掘,我终于找到了一个适合我需要的解决方案

我使用LogContext.PushProperty机制来推送XmlReader,或者更确切地说是一个包装器对象,因为与解构匹配的类型是精确的,XmlReader是一个工厂,它将许多不同的类返回到LogContext中,并向LoggerConfiguration添加了一个自定义的解构,以检测该包装类型的对象,然后根据我的喜好格式化它