Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
C# 将NLog消息写入其他目标_C#_Nlog - Fatal编程技术网

C# 将NLog消息写入其他目标

C# 将NLog消息写入其他目标,c#,nlog,C#,Nlog,我想根据条件将消息记录到文件中。为此,我首先将所有日志消息写入内存类型,并检查代码中的条件。我试图写入文件类型,只有在条件为真的情况下才写入那些堆积(内存)的日志。下面是我的日志的外观 这是背后的代码 if (dTimeRTaken > 7000) { StringBuilder stringBuilder = new StringBuilder(); var target = (MemoryTarget)

我想根据条件将消息记录到文件中。为此,我首先将所有日志消息写入内存类型,并检查代码中的条件。我试图写入文件类型,只有在条件为真的情况下才写入那些堆积(内存)的日志。下面是我的日志的外观


这是背后的代码

        if (dTimeRTaken > 7000)
        {
            StringBuilder stringBuilder = new StringBuilder();
            var target = (MemoryTarget)LogManager.Configuration.FindTargetByName("MemoTarget");
            var logger = LogManager.GetLogger("MyFileLogger");
            foreach (var loggingEvent in target.Logs.ToArray())
            {
                stringBuilder.AppendLine(loggingEvent);
            }                
            logger.Debug(stringBuilder);
            LogManager.Flush();
        }
这里的问题是flush不工作,并且正在追加内存目标消息。文件内容如下所示

一,

十二,

123

1234


我希望输出为1 2 3 4

可能在文件目标周围使用BufferingWrapper。像这样:


但是,如果您希望在不使用BufferingWrapper的情况下手动控制logevents,那么您应该确保如下配置日志规则:


是否需要
target.Logs.Clear()
?@Julian target.Logs.Clear()不起作用:(