2016-04-28 65 views
1

如何在Log4Net中配置特定例外的日志级别?在Log4Net中为特定例外设置日志级别(对于Episerver)

我们的应用程序目前在WARNING日志级别生成多个WebSocketException。但是,如果从WARNING更改为INFO,我们会改变它们以使我们的日志更具可读性。

该应用程序使用EPiServer Log4Net包,但配置应该相同。

这是可以从Log4Net进行配置,从.config文件进行配置,还是需要在代码中处理?

+0

你能澄清一下吗 - 你想改变你的记录器设置,以便它也*包括* INFO(“将其设置为INFO”),但这会使它*更少*可读。或者,您是否想要更改日志,以便将它们输出为info *而不是* warning(并因此排除,因为config仅警告)? –

+1

您无法通过配置更改日志的输出(从警告到信息),这将需要更改代码。但是,您可以从输出中排除日志 - 但是日志通常是在类级别生成的,而不是每种异常类型的不同日志记录器。虽然log4net确实有一个很好的类层次结构(例如,您可以在名称空间或类级别切换) - 这一切都取决于代码中记录器的名称。 –

+2

EPiServerLog.config中没有关于log4net配置的特定Episerver,因此标准文档适用于:https://logging.apache.org/log4net/release/manual/configuration.html –

回答

2

就过滤掉你不希望任何条目,因为WebSocketExceptions是不是很有趣:

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

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

+0

这看起来很完美!我们会放弃它,看看日志条目是否消失。 :) –

1

随着Log4Net这应该是像调用ILog信息而不是警告一样简单。

Logger.Info("message"); 

,而不是

Logger.warn("message"); 

根据您的设置它可能是值得做的变化在你的XML

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

这个问题推断这需要在配置(*如何配置日志记录级别*)而不是代码(但它不是明确的tbh) –

+0

我最初寻找* .config *设置来控制日志记录水平 - 因为现在更新的问题应该更好地反映。不过谢谢你的回答。 –

相关问题