Вы можете реализовать такое Filter
, например,наследование от LoggerMatchFilter
, чтобы вы могли повторно использовать некоторые функции, а вместо этого переопределить алгоритм сопоставления, используя сравнение с полным равенством;loggingEvent.LoggerName == this.LoggerToMatch
.
Заимствование из кода Log4net выглядит следующим образом:
namespace PFX.Logging
{
public class LoggerFullMatchFilter : log4net.Filter.LoggerMatchFilter
{
public override FilterDecision Decide(LoggingEvent loggingEvent)
{
if (loggingEvent == null)
{
throw new ArgumentNullException("loggingEvent");
}
if (this.LoggerToMatch != null
&& this.LoggerToMatch.Length != 0
&& loggingEvent.LoggerName == this.LoggerToMatch
)
{
if (this.AcceptOnMatch)
{
return FilterDecision.Accept;
}
return FilterDecision.Deny;
}
return FilterDecision.Neutral;
}
}
}
Вы используете этот пользовательский фильтр в своей конфигурации, как показано ниже, указав его полное имя сборки (namespace.class, сборка )
<filter type="PFX.Logging.LoggerFullMatchFilter, Lib">
<acceptOnMatch value="true" />
<loggerToMatch value="Class.Name.Space.MyClassName" />
</filter>