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()不起作用:(