【发布时间】:2014-08-01 15:28:23
【问题描述】:
我想使用 NLog 将消息记录到现有的富文本框中。到目前为止,我使用了this answer 中给出的代码方法,但我发现this codeplex issue 最终解释了我如何使用配置。问题是,它不起作用,单独的富文本框窗口仍然打开。我的项目是 WPF,窗口名称和控件名称在 xaml 中设置如下:
<Window x:Name="Main_Window" ...>
...
<DockPanel ...>
...
<RichTextBox x:Name="rtbLog" ... />
</DockPanel>
</Window>
它们在 Nlog.config 中使用如下:
<target xsi:type="RichTextBox"
formName="Main_Window" controlName="rtbLog" ... />
所以,名称匹配。我在Window_Loaded事件处理程序中设置了记录器:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
log = LogManager.GetCurrentClassLogger();
}
我做错了什么?
【问题讨论】:
-
RichTextBoxTraget 仅支持 Winforms。因此,如果您尝试使用 WPF,它总是会显示一个带有 WinForms RichTextBox 的漂亮 WinForms 窗口。因此,您应该使用链接问题中的 Erwin 的答案:stackoverflow.com/a/7709872/872395 或使用此 nuget 包:nuget.org/packages/NLog.Wpf.RichTextBox 其中包含相同的代码
-
@nemesv 感谢您提供的信息。请给它一个答案,这样我就可以赏金给你,前提是没有其他人有更好的补充。