【发布时间】:2017-10-29 01:08:30
【问题描述】:
我正在使用内置的日志记录提供程序在 .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...
有什么想法吗?我知道,我可以编写一个自定义记录器,但我想知道是否有其他方法。
谢谢。
【问题讨论】:
-
最后我改进了 Microsoft logger 并发布了它github.com/ilya-chumakov/LoggingAdvanced。使用该包,可以删除消息部分之间的换行符。此外,我添加了另一个杀手级功能 - 时间戳!
-
自上次关于此问题的活动以来已经快 3 年了。 Miscrosoft 是否在 .Net Core 3 中加入了这样的功能?
标签: c# logging console-application .net-core