Found out why - so for others having the same issues: Problem was my understanding of filters and the usage of "acceptOnMatch". My filter collection now looks like this:
<filter type="log4net.Filter.PropertyFilter"> <key value="ID" /> <RegexToMatch value="[^87e18d7e477349ef9713e19c40ea393a]" /> <acceptOnMatch value="false" /> </filter> <filter type="log4net.Filter.StringMatchFilter"> <stringToMatch value="yet" /> </filter> <filter type="log4net.Filter.DenyAllFilter" /> The change here is that the PropertyFilter is reversed into "if NOT that ID matches discard the log entry". I thought there would be some "Filter1 AND Filter2 AND..." logic, but there isn't. -- Werner ITemplate wrote: > > Hi, > > Ok now I can get it to work but the reason I dont understand. I missed > that one other filter was uncommented. My problem is that I cannot mix a > StringMatchFilter with a PropertyFilter. I can mix either with other > filters without problems but they do not work together. Like so: > > <filter type="log4net.Filter.StringMatchFilter"> > <stringToMatch value="yet" /> > <acceptOnMatch value="false" /> > </filter> > > <filter type="log4net.Filter.PropertyFilter"> > <key value="ID" /> > <stringToMatch value="87e18d7e477349ef9713e19c40ea393a" /> > <acceptOnMatch value="true" /> > </filter> > > <filter type="log4net.Filter.DenyAllFilter" /> > > This does not work. However if I: > > 1) Remove StringMatchFilter, it works. > 2) Remove PropertyFilter and set > StringMatchFilter.acceptOnMatch="true", it works. > > Any clues why? > > -- > Werner > > > Yuriy Taraday wrote: >> >> Yes, properties is the only way. >> I think, the best way to find out, what's wrong, is to step through >> log4net source with debugger. >> >> On Wed, May 5, 2010 at 2:54 PM, ITemplate <itempl...@hotmail.com> wrote: >>> >>> Hi, >>> >>> Tried that already both Stacks and Properties - same outcome. My issue >>> here >>> is that I need to append some key-value pair for each log entry - and >>> then >>> in configuration I must setup that specific key-value pairs should >>> result in >>> logging to multiple appenders. The properties seems like the only way to >>> do >>> this correct? >>> >>> Only have to find out why this filter isn't returning true. >>> >>> -- >>> Werner >>> >>> >>> >>> Yuriy Taraday wrote: >>>> >>>> As I understand, this filter checks TreadContext properties, not >>>> LoggingEvent properties. You should try >>>> log4net.ThreadContext.Properties["ID"] = >>>> "87e18d7e477349ef9713e19c40ea393a"; >>>> >>>> On Wed, May 5, 2010 at 2:26 PM, ITemplate <itempl...@hotmail.com> >>>> wrote: >>>>> >>>>> Hi, >>>>> >>>>> I have an appender that has 1 PropertyFilter like so: >>>>> >>>>> <filter type="log4net.Filter.PropertyFilter"> >>>>> <key value="ID" /> >>>>> <stringToMatch value="87e18d7e477349ef9713e19c40ea393a" /> >>>>> <acceptOnMatch value="true" /> >>>>> </filter> >>>>> <filter type="log4net.Filter.DenyAllFilter" /> >>>>> >>>>> In code I am using ILogger like so: >>>>> >>>>> log4net.Core.LoggingEvent ev = new >>>>> log4net.Core.LoggingEvent(...); >>>>> ev.Properties["ID"] = "87e18d7e477349ef9713e19c40ea393a"; >>>>> >>>>> If I remove that filter the log is written alright. All other filters >>>>> I >>>>> have >>>>> tested are working correct. If I run debug mode I can see log4net >>>>> discovering the propertyFilter correct. But it never kicks in. Where >>>>> is >>>>> my >>>>> error? >>>>> >>>>> -- >>>>> Werner >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://old.nabble.com/Cannot-get-PropertyFilter-to-work-tp28459133p28459133.html >>>>> Sent from the Log4net - Users mailing list archive at Nabble.com. >>>>> >>>>> >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://old.nabble.com/Cannot-get-PropertyFilter-to-work-tp28459133p28459340.html >>> Sent from the Log4net - Users mailing list archive at Nabble.com. >>> >>> >> >> > > -- View this message in context: http://old.nabble.com/Cannot-get-PropertyFilter-to-work-tp28459133p28473079.html Sent from the Log4net - Users mailing list archive at Nabble.com.