我有一个带有多个选项卡的应用程序。我正在尝试使用NLog添加日志记录,其中将输出定向到Richtextbox。
我的主要形式是类MyNamespace.MainWindow
的实例,其名称为MainWindow1
。它有一个选项卡,在该选项卡中,我有一个名为RichTextBox
的rtbLogBox
我已经从WpfRichTextBox
导入了NuGet
扩展名,并将这段代码放入MainWindow类的loaded事件中。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if(logger == null) logger = LogManager.GetCurrentClassLogger();
WpfRichTextBoxTarget rtbTarget = new WpfRichTextBoxTarget
{
Name = "rtbLog",
ControlName = "rtbLogBox",
FormName = "MainWindow"
};
LogManager.Configuration.AddTarget(rtbTarget);
LogManager.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, rtbTarget.Name);
logger.Info("This");
}
问题是,这不会在RichTextBox控件中产生任何输出。
除此以外,我还有文件输出,并且在运行应用程序时该目标会获取日志。
最佳答案
由于记录器是在更改LogManager的配置之前创建的,因此您需要将更改通知通知记录器。
调用LogManager.ReconfigExistingLoggers()
应该可以解决问题。
Documentation is here.