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 <[email protected]> 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 <[email protected]>
>>>> 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.