Я использую log4net для регистрации прогресса моего веб-приложения, используя Log4PostSharp для AOP-внедрения всех методов. Это имеет желаемый эффект регистрации (почти) всего, и это нормально.
Теперь у меня есть требование регистрировать ТОЛЬКО методы Page_Load в файл/консоль. Я, очевидно, могу ограничить класс log4postsharp для этого, но тогда я потеряю все остальные журналы.
Я просматривал фильтры в log4net, начиная с фильтра StringMatch, но он смотрит только на регистрируемое сообщение, и мне нужно имя метода. Это поместило меня в PropertyFilter, но все равно без радости. Мой фрагмент log4net.config выглядит следующим образом:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.PropertyFilter">
<key value="LocationInfo.MethodName"/>
<stringToMatch value="Page_Load"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<file value="d:\\xxxx\\yyyyy\\zzzzLog"/>
Как видите, я пытаюсь ввести имя метода события регистрации через LocationInfo, но все равно все регистрируется. РЕДАКТИРОВАТЬ: Как упоминалось в комментариях, теперь я включил DenyAllFilter, который я добавил после RTFM ;-)
Кто-нибудь может помочь?
Спасибо,
Майк К.