headerphoto

blogs > Development - Test-Driven Development (TDD) > Testing Log entries

Created Tuesday, November 09, 2010 by simonwilbert

Last updated 557 days ago, by simonwilbert

If the code path of some behaviour makes entries into a logger, they to should be tested. One way this can be done is by using a memory appender (if log4net), and then creating the below method that can get all entries made whilst the act of the test was running.

        private LoggingEvent[] GetLogMessages()
        {
            var hierarchy = LogManager.GetLoggerRepository() as Hierarchy;
            var appender = hierarchy.Root.GetAppender("MemoryAppender") as MemoryAppender;
            return appender.GetEvents();
        }
Then some appropriate log4net configuration in the app.config of the tests project...
< appender name="MemoryAppender" type="log4net.Appender.MemoryAppender" >
    < onlyFixPartialEventData value="true" />
    < threshold value="WARN" />
    
  < root>
     < level value="DEBUG" />
    < appender-ref ref="Console" />
    < appender-ref ref="RollingFile" />
    < appender-ref ref="MemoryAppender" />    
  < /root>

Add comment | Back to blog

Comments (0)

Add comment