从控制台获取数据以创建 log4net 日志条目

发布于 2024-12-23 11:57:20 字数 392 浏览 1 评论 0原文

我正在使用一些外部库,它们正在记录到控制台。我希望这些通过 log4net 进行记录。

注意:我不想从 log4net 登录到控制台,这应该很简单。

到目前为止我发现的是:

1)Console.setOut 方法允许使用不同的文件流。
1.1)覆盖内存流似乎很有希望,但没有机会引发事件来通知更改
2)从控制台写入文件似乎是一种解决方法,我可以读取文件以使用新日志更新 UI 文本框
3)FileStreams可以autoflush,这意味着信息的自动更新。这种概念和我追求的类似吗?

将控制台信息放入 log4net 中的最佳方法是什么,以便它可以像配置 log4net 一样发布控制台日志项?目前,我的 log4net 将日志放入事件日志、数据绑定的 wpf 文本框和文件中。

I have some external libraries that I am using that are logging to the console. I want these to log via log4net.

NOTE: I am NOT wanting to log to console from log4net, that should be straight forward.

What I have discovered thus far:

1) Console.setOut method allows using a different file stream.
1.1) Overriding memorystream seemed promising but there isn't a chance for raising an event to notify of changes
2) Writing to a file from Console seems like a work around, where I can read the file to update the UI textbox with new logs
3) FileStreams can autoflush, this means automatic updating of information. This sort of concept is similar to what I am after?

Whats the best way to get the console information put into log4net so that it can publish console log items the same way as log4net is configured? Currently my log4net puts logs into the eventlog, into a databinded wpf textbox, and into a file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情仇皆在手 2024-12-30 11:57:20

除了您写的之外,个人不知道这种情况的任何其他解决方案:

  • ovewrite output of console pointing it to a file

  • 读取文件并添加到记录器

要获得有关更改的通知,您可以尝试使用FileSystemWatcher http://msdn.microsoft.com/en-us/library/system .io.filesystemwatcher.aspx

或者,如果您不想要“实时通知”,可以打开文件仅用于读取并使用计时器检查在最后保存的读取器指针位置之后是否有任何行。

但我认为,第一个选择要容易得多。

希望这有帮助。

Personally don't know any other solution for this case other then you wrote:

  • ovewrite output of console pointing it to a file

  • read the file and add to a logger

To be notified about the change you can try to use FileSystemWatcher http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx.

Or if you don't want "real time notification", canopen file only for read and check with the timer if there is any row after last saved reader pointer position.

But I think, the first option is much easier.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文