Mark created LOG4NET-475: ---------------------------- Summary: Cannot add appender in Log4net at runtime Key: LOG4NET-475 URL: https://issues.apache.org/jira/browse/LOG4NET-475 Project: Log4net Issue Type: Bug Components: Appenders Affects Versions: 1.2.13 Environment: Windows, C#, Visual Studio unit testing Reporter: Mark Priority: Blocker
I am trying to write a custom appender that rolls over daily, as well as on a size limit, and cleans up after itself in the process. I wrote the implementation using the AppenderSkeleton as a base class, then attempted to write a unit test to test the appender functionality. I do the following: DailyRollingFileAppender appender = new DailyRollingFileAppender(); appender.RollOverOnSize = true; appender.RollOverDaily = true; //dont think I can test this appender.MaxFileSizeBytes = 1024; appender.RolloverDayCount = 1; appender.RollOverOnSize = true; appender.LoggingDirectory = Path.Combine(Directory.GetCurrentDirectory(), "TestLogFolder"); appender.LogFileName = "TestLogFileName"; appender.DateTimeFormatString = "YYYY-MM-DD-hh-mm-ss"; appender.Cleanup = true; appender.Layout = new PatternLayout(); appender.MaxNumberOfFiles = 10; appender.Name = "testAppender"; //lets write some crappy log messages byte[] bytes = new byte[1050]; Random rnd = new Random(); rnd.NextBytes(bytes); ILog log = LogManager.GetLogger("LoggerName"); Logger logger = (Logger)log.Logger; logger.AddAppender(appender); logger.Log(Level.Info, Encoding.UTF8.GetString(bytes), new Exception()); logger.Log(Level.Info, Encoding.UTF8.GetString(bytes), null); The code is based on the only examples I can find of people adding appenders to loggers at runtime, which you would want to do for a unit test. The issue is that the Logger instance I get from the call to ILog.Logger in the code above as a collection of appenders of type ReadOnlyAppenderCollection. The code silently consumes the exception it throws internally and never actually adds the appender to the collection. Can/How do I add an appender to a logger at runtime in the manner described above, so I can appropriately test that it functions. -- This message was sent by Atlassian JIRA (v6.3.4#6332)