Vb.net 如何以编程方式筛选出发送到特定记录器的消息?
萨尔维特!在Nlog编码配置中,我们如何根据其名称筛选出一个记录器?我想将所有内容都记录到locallogtarget,除了RichTextMessenger目标之外。我试图添加一个过滤器,但我一定是做错了什么,因为过滤器没有过滤任何东西 这个链接对我很有帮助,但并没有完全解决它: 在日志类中,我有:Vb.net 如何以编程方式筛选出发送到特定记录器的消息?,vb.net,nlog,Vb.net,Nlog,萨尔维特!在Nlog编码配置中,我们如何根据其名称筛选出一个记录器?我想将所有内容都记录到locallogtarget,除了RichTextMessenger目标之外。我试图添加一个过滤器,但我一定是做错了什么,因为过滤器没有过滤任何东西 这个链接对我很有帮助,但并没有完全解决它: 在日志类中,我有: Private MainNlogConfig As New LoggingConfiguration() Dim locallogtarget As New FileTarget() Dim l
Private MainNlogConfig As New LoggingConfiguration()
Dim locallogtarget As New FileTarget()
Dim labelmessengertarget As New FormControlTarget()
Dim localrule As New LoggingRule("*", LogLevel.Info, locallogtarget)
MainNlogConfig.AddTarget("file", locallogtarget)
MainNlogConfigAddTarget("FormControl", richtextmessengertarget)
With locallogtarget
.Layout = "${longdate} ${logger} ${message}"
.FileName = appdir & appName & ".log"
End With
Dim filteringTarget As New FilteringTargetWrapper()
filteringTarget.WrappedTarget = locallogtarget
filteringTarget.Condition = "not equals('${logger}', 'messenger')"
SimpleConfigurator.ConfigureForTargetLogging(filteringTarget, LogLevel.Info)
With richtextmessengertarget
.Layout = "${message} ${logger}" & vbCrLf
.FormName = "form_myform"
.ControlName = "richtext_messenger"
.Append = True
End With
LogManager.Configuration = MainNlogConfig
要启动messenger,我使用以下命令:
Public MessengerLogger = LogManager.GetLogger("messenger")
MessengerLogger.Info("This message should go to richtext control, but not log file.")
我为一个配置文件找到了这一行,看起来它可能会工作,但我不知道如何将它转换成代码。它来自这里:我知道我可以删除记录“”的主记录器,但我确实想记录“”-除了messenger。