わかりました、私自身の質問に答えます (というか、私の同僚はベスに感謝します)。
log4net: config の構成:
<log4net>
<appender name="MemoryAppender" type="log4net.Appender.MemoryAppender" />
<root>
<level value="DEBUG" />
<appender-ref ref="MemoryAppender" />
</root>
</log4net>
.net コードで:
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();
メッセージ配列を取得したら、必要なことを行います。
これは、既存のログ ファイルがあり、それを検索したい場合には対処できません。