2017-10-12 100 views
4

我通過非常少量的代碼更改將Web API項目從ASP.NET Core 1.x升級到ASP.NET Core 2.0。升級到ASP.NET Core 2.0後,Web API控制檯中的重複信息消息

當運行WebAPI時,命令提示符像正常一樣打開。

但是,每一條信息都是重複的。

這是一個ASP.NET核心錯誤還是這是我升級後的問題?

UPDATE:

我是做在Startup.cs配置方法如下:

loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
    loggerFactory.AddDebug(); 

當我刪除它有沒有重複。這不再需要嗎?

+0

這聽起來像是你的錯誤。 WebHost.CreateDefaultBuilder設置了一些默認日誌記錄,所以你可能再次自己添加相同的日誌記錄系統。 –

+0

@Kirk好點,讓我仔細檢查。 –

+0

@Kirk請參閱我的更新。 –

回答

5

WebHost.CreateDefaultBuilder爲您設置了許多傳統東西,以便爲每個單獨的ASP.NET Core 2項目(如在ASP.NET Core 1.x中)保存相同的代碼。

您可以看到WebHost.CreateDefaultBuilder here的代碼。對於您的特定情況下,如果你的源代碼看起來有點further down,你會看到以下內容:

logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); 
logging.AddConsole(); 
logging.AddDebug(); 

由於這個原因,您不再需要自己添加該代碼。在這樣做的時候,它會被添加兩次(儘管對我來說這看起來很不尋常),但看起來最終這樣做了兩次。

如果你想更詳細地瞭解這些變化,Andrew Lock有一個很好的write-up它如何工作。他還深入瞭解如何重寫這些默認設置等的一些細節。請注意,這篇文章基於ASP.NET Core 2預覽版1,但從此以後似乎沒有多大變化。