Hello World,
I am trying to create a logger without and a derived logger with a filter.
Unfortunately this does not work. What I did:
ILog mainLogger = LogManager.GetLogger("log4net-test");
ILog classLogger = LogManager.GetLogger("log4net-test.MainClass");
LogTestManager ltm = new LogTestManager();
RollingFileAppender rotateAppender = ltm.CreateRollingFileAppender();
rotateAppender.ActivateOptions();
((log4net.Repository.Hierarchy.Logger)mainLogger.Logger).AddAppender(rotateAppender);
RollingFileAppender rfa = ltm.CreateRollingFileAppender();
StringMatchFilter smf = ltm.CreateStringMatchFilter("TestMatch");
rfa.AddFilter(smf);
rfa.ActivateOptions();
((log4net.Repository.Hierarchy.Logger)classLogger.Logger).AddAppender(rfa);
((log4net.Repository.Hierarchy.Logger)mainLogger.Logger).Level = Level.All;
((Hierarchy)LogManager.GetRepository()).Configured = true;
var firstClass = new MainClass(classLogger);
The first logger ("mainLogger") should log everything (that works), the
second logger ("classLogger") should log everything (to the same file)
except text that contains "TestMatch". Unfortunately if I execute:
mainLogger.Error("An unfiltered TestMatch statement");
firstClass.PrintLoggingStatement("A filtered TestMatch statement",
Level.Error);
I got both in my log file. If I add the filter to the first
logger/appender, both statements are filtered.
What I am doing wrong? How to fix this?
TIA and best regards
Andreas
--
("`-''-/").___..--''"`-._
`o_ o ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' .'
(il).-'' (li).' ((!.-'
Andreas Tscharner a...@vis.ethz.ch ICQ-No. 14356454