2017-03-03 45 views
3

無處不在,你可以使用默認設置我在哪裏可以找到用於配置Microsoft擴展日誌記錄設置的文檔?

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
} 

我想知道是否有比這更,對於exmple如果我可以自定義消息的格式像NLOG佈局屬性找到例子。

<target name="logfile" xsi:type="File" fileName="file.txt" layout="${date:format=yyyyMMddHHmmss} ${message}" /> 
+0

「微軟擴展日誌」是什麼意思? –

+0

OP可能是指'Microsoft.Extensions.Logging'命名空間和包([GitHub項目頁面](https://github.com/aspnet/Logging))。他們的[示例](https://github.com/aspnet/Logging/blob/dev/samples/SampleApp/logging.json)與OP的示例非常相似。 – stakx

回答

1

以下答案可能不完全準確,因爲我對ASP.NET Core Logging不太熟悉。以下是基於一些研究並查看源代碼和示例。

就讓我們來看看在Microsoft.Extensions.Logging NuGet包(它的源代碼可以發現on GitHub)的源代碼顯示,你在顯示設置可能是特定於ConsoleLogger,不承認任何其他設置。通過查看源文件here,尤其是the file ConfigurationConsoleLoggerSettings.cs,您可以看到自己可以訪問哪些配置節。

不同的記錄器可能採用完全不同的方法來讀取其配置。例如,NLog可以配置一個XML文件。如果您想使用NLog,則需要使用ASP.NET Core註冊適當的日誌提供程序。你想要NLog provider。有演示其基本使用example project on that project page

// add the NuGet package `NLog.Web.AspNetCore` as a project dependency, 
// which makes these namespaces available: 
using NLog.Extensions.Logging; 
using NLog.Web; 

// your ASP.NET Core startup/configuration class: 
partial class Startup 
{ 
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     … 
     loggerFactory.AddNLog(); 
     app.AddNLogWeb(); 
     … 
    } 
} 

然後configure NLog through the NLog.config XML file

+0

感謝您的回答。我習慣於NLog(我認爲它很棒),但是當我正在開發一個全新的ASP網絡核心項目時,我想嘗試一下微軟提出的建議。說實話,我沒有得到NLOG提供者的想法:如果我已經使用NLOG,爲什麼我會使用微軟的日誌?我也想看看源代碼,但我期望至少對於像這樣的東西可能有一個簡單的文檔(再次NLog docet ..) –

+0

@PaoloV:我不知道,.NET核心是對我來說也很新鮮。但我懷疑提供者的目的是完全集成任何日誌記錄解決方案和ASP.NET Core。也就是說,ASP.NET Core可能會使用* your *選擇的日誌記錄庫輸出*其*日誌消息。提供者是橋樑。在完整的.NET Framework中,可以通過'Web.config'的''部分來完成這些事情,但現在'Web.config'基本上已經不存在了(從應用程序的角度來看),一種新的配置機制是必需的(即,在'Startup'中註冊一個庫)。 – stakx

相關問題