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" />
appender>
< root>
< level value="DEBUG" />
< appender-ref ref="Console" />
< appender-ref ref="RollingFile" />
< appender-ref ref="MemoryAppender" />
< /root>