我如何用NLog输出"console.write"风格的输出(没有换行符)

本文关键字:quot 输出 换行符 console 何用 NLog write 风格 | 更新日期: 2023-09-27 17:50:21

我如何输出日志作为console.write()即没有换行符与NLog?

${message}默认插入换行符

我如何用NLog输出"console.write"风格的输出(没有换行符)

我希望我理解你的意思,似乎你在你想写的字符串中有新的行字符,这导致它在控制台上转到新的行,如果是这样,用空白字符串替换换行字符,如下所示。

string Message = "testMessage'r'n";
Console.Write(Message.Replace("'r'n",""));

文件目标具有LineEnding属性,可以设置为以下值:

  • Default -在每行之后插入与平台相关的行尾序列。
  • CR -每行后插入CR字符(ASCII 13)。
  • CRLF -在每行后插入CR LF序列(ASCII 13, ASCII 10)。
  • LF -每行后插入LF字符(ASCII 10)。
  • None -不要插入任何行尾

在您的情况下,您需要None,所以:

 <target xsi:type="File"
          name="file1"
          lineEnding="None"

如果你在另一个目标中需要这个,例如consolettarget,那么它不会被实现。请在GitHub上打开一个问题

你可以在nlog配置中使用替换新行布局渲染器,例如:

<target name="HealthLog" 
    xsi:type="File" 
    fileName="$C:'Logs'logfile.log"
    layout="${date:format=yyyy-MM-dd HH':mm':ss.fff} ${level:uppercase=true} ${replace-newlines:${message}}"
/>

关于替换新行布局渲染器的文档可以在这里找到:https://github.com/NLog/NLog/wiki/Replace-NewLines-Layout-Renderer

要在控制台中记录项目,使用console.log(item)。

似乎有一个名为LineEndingMode/LineEnding的属性,您可以尝试修改。