2017-03-03 46 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

相关问题