2017-08-01 126 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庫的引用,更新了初始化,並且按預期工作/ –