我如何用NLog输出"console.write"风格的输出(没有换行符)
本文关键字:quot 输出 换行符 console 何用 NLog write 风格 | 更新日期: 2023-09-27 17:50:21
我如何输出日志作为console.write()
即没有换行符与NLog?
${message}
默认插入换行符
我希望我理解你的意思,似乎你在你想写的字符串中有新的行字符,这导致它在控制台上转到新的行,如果是这样,用空白字符串替换换行字符,如下所示。
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的属性,您可以尝试修改。