C# 为Log4Net中的特定异常设置日志记录级别(对于Episerver)

C# 为Log4Net中的特定异常设置日志记录级别(对于Episerver),c#,asp.net-mvc,logging,log4net,episerver,C#,Asp.net Mvc,Logging,Log4net,Episerver,如何为中的特定异常配置日志记录级别 我们的应用程序当前正在生成多个警告日志记录级别。然而,我们希望将if从警告改为信息,以使日志更具可读性 应用程序正在使用该包,但配置应相同 这是否可以从Log4Net配置为从.config文件执行,或者必须在代码中处理它?对于Log4Net,这应该很简单,只需使用info而不是warn调用ILog即可 Logger.Info("message"); 而不是 Logger.warn("message"); 根据您的设置,可能值得在xml中进行更改 <l

如何为中的特定异常配置日志记录级别

我们的应用程序当前正在生成多个警告日志记录级别。然而,我们希望将if从警告改为信息,以使日志更具可读性

应用程序正在使用该包,但配置应相同


这是否可以从Log4Net配置为从.config文件执行,或者必须在代码中处理它?

对于Log4Net,这应该很简单,只需使用info而不是warn调用ILog即可

Logger.Info("message");
而不是

Logger.warn("message");
根据您的设置,可能值得在xml中进行更改

<log4net> 
  <appender name="appenders_name">
  ... other settings
   <root>
       <level value="INFO" />
   </root>
  </appender>
</log4net>

... 其他设置

只需过滤掉您不想要的任何条目,因为WebSocketException不是很有趣:

<filter type="log4net.Filter.StringMatchFilter">
  <stringToMatch value="WebSocketException" />
  <acceptOnMatch value="false" />
</filter>


注意:Log4Net在使用StringMatchFilter时使用indexof,因此可以查找部分字符串。一定要记住它是区分大小写的。

你能澄清一下吗?你想改变你的日志设置,使它也包含信息(“设置为信息”),但这会降低它的可读性。或者,是否要更改日志,使其输出为信息而不是警告(由于配置为仅警告,因此被排除)?无法通过配置更改日志的输出(从警告更改为信息),这将需要更改代码。但是,您可以从输出中排除日志,但是日志通常是在类级别生成的,而不是针对每个异常类型生成不同的日志。虽然log4net确实有一个很好的类层次结构(例如,您可以在命名空间或类级别进行切换),但这完全取决于代码中记录器的名称。EPiServerLog.config中的log4net配置没有特定于Episerver的内容,因此标准文档适用:@freedomn-m,我确实希望将日志记录级别从警告更改为信息。此外,我还打算通过.config文件来实现这一点,正如您所指出的,这是不可能的。如果你写评论作为回答,除非其他人有更好的建议,否则我会接受。我相信你对WebSocketException并不感兴趣,那么为什么不使用log4net.filter.StringMatchFilter过滤掉它们呢?问题推断这需要在配置中完成(我如何配置日志记录级别),而不是在代码中完成(但还不太清楚tbh)我最初是在寻找一个.config设置来控制日志记录级别-现在更新的问题应该能更好地反映这一点。不过,感谢您的回答。这看起来很完美!我们将试一试,看看日志条目是否消失。:)