Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何以编程方式筛选出发送到特定记录器的消息?_Vb.net_Nlog - Fatal编程技术网

Vb.net 如何以编程方式筛选出发送到特定记录器的消息?

Vb.net 如何以编程方式筛选出发送到特定记录器的消息?,vb.net,nlog,Vb.net,Nlog,萨尔维特!在Nlog编码配置中,我们如何根据其名称筛选出一个记录器?我想将所有内容都记录到locallogtarget,除了RichTextMessenger目标之外。我试图添加一个过滤器,但我一定是做错了什么,因为过滤器没有过滤任何东西 这个链接对我很有帮助,但并没有完全解决它: 在日志类中,我有: Private MainNlogConfig As New LoggingConfiguration() Dim locallogtarget As New FileTarget() Dim l

萨尔维特!在Nlog编码配置中,我们如何根据其名称筛选出一个记录器?我想将所有内容都记录到locallogtarget,除了RichTextMessenger目标之外。我试图添加一个过滤器,但我一定是做错了什么,因为过滤器没有过滤任何东西

这个链接对我很有帮助,但并没有完全解决它:

在日志类中,我有:

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。