我有一个控制台应用程序在服务器上运行,它会产生大量日志记录(NLog用于此)。我希望能够远程监听日志。我可以使用网络日志记录类型,但我想减少带宽,所以我想在服务器端应用过滤,这样只有过滤后的日志记录才会发送到客户端。
我可以在服务器上创建预定义的日志记录目标并监听这些目标,但这还不够好。客户端需要能够指定筛选器。多个客户端应该能够侦听日志记录。
有什么方法可以让这种类型的功能在NLog中开箱即用吗?或者我需要创建一种自定义的方式来使用某种订阅者列表来实现这一点?
在这种情况下,没有现成的解决方案,但您可以编写自定义的Target
:
例如:
public class MySuperTarget : TargetWithLayout
{
public MySuperTarget()
{
}
protected override void Write(LogEventInfo logEvent)
{
// 1. Filter LogEventInfo
// 2. Send to clients
}
}
更多信息请点击此处:https://github.com/nlog/NLog/wiki/How-to-write-a-Target