Ich bin neu zu Logger Arbeiten an log4net
Filter Ich habe versucht, verbleibende Filter wie "Level-Bereich, , LoggerMatchFilter
" alle funktionieren gut aber Eigenschaft Filter funktioniert nicht. Ich habe verschiedene Lösungen ausprobiert und es funktioniert auch nicht.log4net.Filter.PropertyFilter funktioniert nicht
Hier ist mein Code:
Code:
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; }
}
}
ich diese Lösung in log4net filter - how to write AND filter to ignore log messages gesehen, aber für mich Hinzufügen von Filtern nicht zu Schnittstelle. Ich habe nicht bekommen, ob Filter direkt oder nicht hinzugefügt werden? In loggingevent übergebe ich die Daten in Nachricht Eigentum, aber die ich weiß nicht, wie man die in Eigenschaften hinzufügen kann jemand bitte führen Sie mich, und ich weiß nicht, wie man diese Funktion nennt.
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>
ich verpasst haben einige, wo mir bitte von ihm helfen. Ich kämpfe seit einigen Stunden.
Update:
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;
}
Hier entscheiden() Funktion overide von filterskelton aber Eigenschaftsfilter bewirbt sich nicht der Lage, die Details von webconfig zu lesen, aber es kann das nicht filtern Log-Nachricht gibt es etwas, was ich darin verpasst habe.
Vielen Dank im Voraus!
überprüfen ** loggingEvent ** ist null. Wie weisen Sie die Daten ** LoggingEvent ** zu? Zu welcher Eigenschaft muss ich die Daten in ** LoggingEvent ** zuweisen und filtere auch null. – prasanthi
Ich möchte klarstellen,, Namespace und Assembly, die Sie als Platzhalter verwenden? es ist kein echter Code-Snap von Ihrem Projekt –
An Stelle von ** NameSpace ** behielt ich den Namensraum des ** CustomFilter ** in meinem Code. – prasanthi