所以我试图在WPF项目中为log4net构建一个自定义appender,使用如下代码:
public class RichTextBoxAppender : RichTextBox, IAppender
{
void IAppender.Close()
{
}
void IAppender.DoAppend(LoggingEvent loggingEvent)
{
Dispatcher.Invoke(() =>
{
Document.Blocks.Add(new Paragraph(new Run(loggingEvent.RenderedMessage)));
ScrollToEnd();
});
}
}
我执行程序后没有发生任何事情。出于调试目的,我尝试将Debug.WriteLine(loggingEvent.RenderedMessage)
添加到lambda表达式,该表达式正确打印日志。我也试过从MainWindow.xaml.cs调用Document.Blocks.Add()
,这也有效。
我做错了什么?提前谢谢。