gpt4 book ai didi

c# - 从 appender 访问过滤器属性

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:55 24 4
gpt4 key购买 nike

给定一个扩展 FilterSkeleton 的类,属性名称为 MyName 和一个扩展 ApenderSkeleton 的附加程序

是否有可能在 appender 的 Append 方法中获取接受此消息的过滤器的 MyName 属性?

protected override void Append(LoggingEvent loggingEvent)
{
//sudo
var somename = acceptedfilter.MyName;

}

最佳答案

您可以覆盖FilterEvent方法来保存接受消息的过滤器,然后在Append中检索它:

public class FilteredAppender : AppenderSkeleton
{
private IFilter filter;

protected override bool FilterEvent(LoggingEvent loggingEvent)
{
IFilter f = this.FilterHead;

while (f != null)
{
if (f.Decide(loggingEvent) == FilterDecision.Accept)
{
filter = f; // Set the filter field
break;
}

f = f.Next;
}

return base.FilterEvent(loggingEvent);
}

protected override void Append(LoggingEvent loggingEvent)
{
NamedFilter acceptedfilter = filter as NamedFilter;

if (acceptedfilter!= null)
{
var somename = acceptedfilter.MyName;
// etc
}
}
}

关于c# - 从 appender 访问过滤器属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34141822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com