Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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# 使用log4net,您是否指定要使用哪个appender?_C#_Log4net - Fatal编程技术网

C# 使用log4net,您是否指定要使用哪个appender?

C# 使用log4net,您是否指定要使用哪个appender?,c#,log4net,C#,Log4net,当您的代码中有两个appender(一个用于调试错误,一个用于产品错误)时,您是显式地创建了两个日志类,还是一个appender基本上要编写满足特定条件的任何日志消息 因此,在您的代码中,您使用单一日志方法,并且根据您的附加程序的设置方式,如果消息是从特定名称空间记录的,或者是特定的日志级别记录的,它将记录消息 因此,一个日志条目可能会写入两个日志文件?是的,您可以将一个日志语句发布到多个附件。只要它满足每个appender的标准,它就会使用每个appender 例如,以此配置部分为例,它将所有

当您的代码中有两个appender(一个用于调试错误,一个用于产品错误)时,您是显式地创建了两个日志类,还是一个appender基本上要编写满足特定条件的任何日志消息

因此,在您的代码中,您使用单一日志方法,并且根据您的附加程序的设置方式,如果消息是从特定名称空间记录的,或者是特定的日志级别记录的,它将记录消息


因此,一个日志条目可能会写入两个日志文件?

是的,您可以将一个日志语句发布到多个附件。只要它满足每个appender的标准,它就会使用每个appender

例如,以此配置部分为例,它将所有消息记录到文件中,并将警告和错误记录到事件查看器中:


因此:

  _log.Debug("This is a debug message");
将仅出现在日志文件中(因为它不符合事件日志附加程序的筛选条件)

但这是:

  _log.Error("This is an error message.");
将同时记录到日志文件和事件查看器

更新:关于您的筛选问题,如果您有:



然后,Com.Foo下的所有内容都将在警告或更高级别时记录,但其他所有内容都将在调试或更高级别时记录……

是的,您可以将单个日志语句发布到多个追加器。只要它满足每个appender的标准,它就会使用每个appender

例如,以此配置部分为例,它将所有消息记录到文件中,并将警告和错误记录到事件查看器中:


因此:

  _log.Debug("This is a debug message");
将仅出现在日志文件中(因为它不符合事件日志附加程序的筛选条件)

但这是:

  _log.Error("This is an error message.");
将同时记录到日志文件和事件查看器

更新:关于您的筛选问题,如果您有:



然后,Com.Foo下的所有内容都将在警告或更高级别时进行日志记录,但其他所有内容都将在调试或更高级别上进行日志记录……

所以您也可以按名称空间设置日志级别?根目录是否必须具有该日志级别,或者根目录可能是错误的,而命名空间特定的日志可以设置为INFO?@codecompleting:您可以进行非常详细的筛选。Root只是基本级别的日志记录行为,除非另一个更具体的行为胜过它。请参阅上面的更新。那么您还可以按名称空间设置日志级别吗?根目录是否必须具有该日志级别,或者根目录可能是错误的,而命名空间特定的日志可以设置为INFO?@codecompleting:您可以进行非常详细的筛选。Root只是基本级别的日志记录行为,除非另一个更具体的行为胜过它。请参阅上面的更新。