2017-08-01 83 views
2

我正在使用日志记录到控制台输出,该内置到.Net核心框架。 记录器的初始化这里:使用.Net Core Console日志记录器记录事件日期时间

var serviceCollection = new ServiceCollection(); 
serviceCollection.AddSingleton(new LoggerFactory() 
        .AddConsole()); 

也为记录我使用Microsoft.Extensions.Logging.LoggerExtension的类与方法Log... 这里记录的在我的应用程序的例子:

_logger.LogInformation(eventId, "Action is started."); 

_loggerILogger<T>实例类并在具有内置依赖注入的类构造函数中初始化。 如以下串的上述方法控制台输出显示主叫的结果:

info: NameSpaceName.ClassName[eventId] Action is started. 

我想在控制台输出以显示日期时间,它指向时间,当执行Log方法,但似乎Log ..方法不包含任何允许显示日期时间的方法。

它是否存在某种方法或additioanl类 - 格式化程序,它允许在控制台输出中显示操作datetime而不将它作为消息的一部分传递给方法?

回答

2

内置.NET Core控制台记录器不记录日期时间。跟踪this issue获取更多详情。最简单的解决方法是:

logger.Log(LogLevel.Information, 1, someObj, null, (s, e) => DateTime.Now + " " + s.ToString()); 

我写了一个custom console logger自动登录的时间戳和做其他有用的技巧:

[2017.06.15 23:46:44] info: WebHost[1]  Request starting HTTP/1.1 GET http://localhost:6002/hc 
+0

谢谢。你的图书馆非常出色。我刚刚添加了Nuget包的链接,删除了对标准Logging库的引用,更新了初始化,并且按预期工作/ –