Well, answering my own question (more precisely, my colleague, thanks Beth).
In your configuration for log4net: configuration:
<log4net>
<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender" />
<root>
<level value="DEBUG" />
<appender-ref ref="MemoryAppender" />
</root>
</log4net>
In your .net code:
List<string> messages = new List<string>();
Hierarchy hierarchy = LogManager.GetLoggerRepository() as Hierarchy;
MemoryAppender appender = hierarchy.Root.GetAppender("MemoryAppender") as MemoryAppender;
LoggingEvent[] eventList = appender.GetEvents();
foreach (LoggingEvent item in eventList)
messages.Add(item.RenderedMessage);
return messages.ToArray();
Once you have an array of messages, do what you want.
This does not apply if you have an existing log file and you want to search for it.
source
share