C# 将NLog与WPF richtextbox一起使用
我有一个应用程序,它有几个选项卡。我正在尝试使用NLog添加日志记录,其中输出被定向到richtextbox 我的主窗体是类C# 将NLog与WPF richtextbox一起使用,c#,wpf,nlog,C#,Wpf,Nlog,我有一个应用程序,它有几个选项卡。我正在尝试使用NLog添加日志记录,其中输出被定向到richtextbox 我的主窗体是类MyNamespace.MainWindow的一个实例,它的名称是MainWindow1。它有一个选项卡,在该选项卡中我有一个名为rtbLogBox 我已经从NuGet导入了WpfRichTextBox扩展,并将这段代码放在MainWindow类的loaded事件中 private void Window_Loaded(object sender, RoutedEv
MyNamespace.MainWindow
的一个实例,它的名称是MainWindow1
。它有一个选项卡,在该选项卡中我有一个名为rtbLogBox
我已经从NuGet
导入了WpfRichTextBox
扩展,并将这段代码放在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.reconfigeExistingLoggers()
应该可以做到这一点
您也可以使用我的
wpf控件
。(). 还有一个nuget软件包可用
谢谢,但这并没有解决我的问题。这确实有效,但输出是白色的,所以我看不见。有没有办法把它放在NLog.Config中呢?可能应该放在NLog.Config中,尽管我现在还不能确定,因为我现在不能测试它。尝试将其设置为类似WinForms one see文档的方式。该接口看起来很相似,只需将xsi:type指定为WpfRichTextBox,并填写与示例中相同的属性。由于它将在创建记录器之前加载,因此不需要调用Reconfig方法。如果您有任何问题,请单独提问。