[英]NLog Console logging on single line
我希望能夠在單個控制台行中顯示例如跟蹤級別的日志消息,而不是將它們一個接一個地堆疊。
一個跟蹤日志消息應顯示在控制台中,然后在同一行上替換為另一個跟蹤日志消息。 當出現另一條日志消息(例如,警告)時,消息堆棧應照常繼續。
有沒有一種方法可以為NLog中的控制台日志記錄定義單行覆蓋?
如果包裝NLog,這似乎可以工作
public class Logger : NLog.Logger
{
public void TraceStackConsole(string message)
{
this.Trace(message);
Console.SetCursorPosition(0, Console.CursorTop-1);
}
}
盡管我還沒有成功,但您也可以通過https://github.com/NLog/NLog/wiki/Replace-NewLines-Layout-Renderer獲得一些有趣的結果。 用“ \\ r”替換它可能會起作用
如何在C#Windows控制台應用程序中更新當前行? “如果僅在控制台上打印“ \\ r”,則光標將返回到當前行的開頭,然后可以將其重寫。”
非常感謝@alexbezek,這正是我想要的! :)
盡管我認為為記錄器創建擴展方法對我來說更方便:
public static class LoggerExtension
{
public static void ConsoleStack(this Logger logger, string message)
{
logger.Trace(message);
Console.SetCursorPosition(0, Console.CursorTop-1);
}
}
因此,我可以這樣稱呼它: Logger.ConsoleStack("Log message");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.