log4net
필터에서 작업하는 새로운 정보입니다. "레벨 범위, stringtomatch
, LoggerMatchFilter
"과 같은 나머지 필터를 사용해 보았지만 속성 필터가 제대로 작동하지 않습니다. 다른 솔루션을 시도해 보았지만 작동하지 않습니다.log4net.Filter.PropertyFilter가 작동하지 않습니다
여기 내 코드입니다 :
코드 : 나는 log4net filter - how to write AND filter to ignore log messages이 아니라 나를 인터페이스에 추가하지 필터이 솔루션을 보았다
public class CustomFilter : FilterSkeleton
{
private bool acceptOnMatch;
private readonly IList<IFilter> filters = new List<IFilter>();
public override FilterDecision Decide(LoggingEvent loggingEvent)
{
if (loggingEvent == null)
throw new ArgumentNullException("loggingEvent");
foreach (IFilter filter in filters)
{
if (filter.Decide(loggingEvent) != FilterDecision.Accept)
return FilterDecision.Neutral; // one of the filter has failed
}
// All conditions are true
if (acceptOnMatch)
return FilterDecision.Accept;
else
return FilterDecision.Deny;
}
public IFilter Filter
{
set { filters.Add(value); }
}
public bool AcceptOnMatch
{
get { return acceptOnMatch; }
set { acceptOnMatch = value; }
}
}
. 나는 필터을 직접 추가했는지 여부를 알지 못했습니까? 있음 loggingevent메시지 속성에 데이터를 전달하고 있지만 속성을 추가하는 방법을 모르겠지만 어느 누구도 나를 안내 할 수 없으며이 함수를 호출하는 방법을 모르겠습니다.
Webconfig : 나는 그것에서 저를 도와주세요 어디에 일부를 놓친
<filter type="Namespace.CustomFilter, Assembly">
<filter type="log4net.Filter.PropertyFilter">
<key value="firstname" />
<stringToMatch value="1234" />
</filter>
<filter type="log4net.Filter.PropertyFilter">
<key value="address" />
<stringToMatch value="abcdf" />
</filter>
<acceptOnMatch value="false" />
</filter>
. 지난 몇 시간 동안 고생하고 있습니다.
업데이트 : filterskelton 그러나 속성 필터에서
public string logFilter()
{
log4net.Config.XmlConfigurator.Configure();
ILog Log = LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType
);
var ReferenceID = Guid.NewGuid().ToString();
var firstname = "1234";
var address ="abcdf";
var sno = "12";
Log.InfoFormat("firstname {0}-{1}", firstname, ReferenceID);
Log.InfoFormat("address {0}-{1}", address, ReferenceID);
Log.InfoFormat("sno {0}-{1}", sno, ReferenceID);
return ReferenceID;
}
여기
(결정) 기능 오버라이드 (override)하는은 수 webconfig에서 세부 사항을 읽어 적용되지하지만 필터링 할 수 없습니다 로그 메시지에는 내가 놓친 메시지가 있습니다.
미리 감사드립니다.
을 확인하는 방법 ** loggingEvent **는 null입니다. ** LoggingEvent **에 데이터를 할당하는 방법. ** LoggingEvent **에 데이터를 할당해야하는 속성과 필터도 null입니다. – prasanthi
** NameSpace ** 대신 ** 코드의 ** CustomFilter ** 네임 스페이스를 유지했습니다. – prasanthi