gpt4 book ai didi

c# - 有没有办法在 .NET Core 日志记录中格式化输出格式?

转载 作者:IT王子 更新时间:2023-10-29 04:16:58 24 4
gpt4 key购买 nike

我在 .NET Core 控制台应用程序中使用内置日志记录提供程序登录控制台 (Microsoft.Extensions.Logging.Console)。

每个日志条目在输出中产生两行。我想将每个条目都放在一行中。有没有办法自定义输出格式?

下面是我如何使用它的例子:

static void Main(string[] args)
{
var serviceProvider = new ServiceCollection()
.AddLogging() // This adds the Microsoft logging.
.AddSingleton<IProjectGeneratorService, CSharpProjectGeneratorService>()
.BuildServiceProvider();

// Configure the console logging.
serviceProvider
.GetService<ILoggerFactory>()
.AddConsole(LogLevel.Debug);

// Write a logging entry
var logger = serviceProvider.GetService<ILoggerFactory>().CreateLogger<Program>();
logger.LogDebug("Application started...");
}

我得到的是:

dbug: Generator.Program[0]
Application started...

我想要的是这样的:

dbug: Generator.Program[0]: Application started...

有什么想法吗?我知道,我可以编写自定义记录器,但我想知道是否有其他方法。

谢谢。

最佳答案

更新:从 .NET 5 开始,这可以自定义,如其他答案所示:Console log formatter documentation

原答案:

目前,这不可配置。源码is here on GitHub :

logBuilder.Append(logName);
logBuilder.Append("[");
logBuilder.Append(eventId);
logBuilder.AppendLine("]");

如果需要,您需要编写自己的记录器。但是,您可以只复制控制台记录器的源代码,根据需要进行修改并更改命名空间,这样它就不会干扰 Microsoft 发布的版本。

您还可以打开 issue on the logging repo询问此选项。

关于c# - 有没有办法在 .NET Core 日志记录中格式化输出格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44230373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com