了解最新技术文章
可以启用 OpenID 调试跟踪以帮助跟踪问题。使用标准 ASP.NET Core 日志记录 API 。在我们的示例中,我们使用了 Serilog。但是,任何日志提供程序,包括 Serilog、Log4Net 和 NLog,都可以用于捕获日志信息。
无论使用何种日志记录提供程序,都必须为“ ComponentSpace ”指定“ Debug ”级别。
“记录”:{
“LogLevel”:{
“默认”:“信息”,
“Microsoft”:“警告”,
“Microsoft.Hosting.Lifetime”:“信息”,
“ComponentSpace”:“调试”
}
}
但是,除非用于确定问题,否则不建议在生产环境中启用 OpenID 调试跟踪,因为它可能会影响性能。
Serilog
以下是 appsettings.json 中的示例 Serilog 配置。日志被写入应用程序根文件夹下的“logs”文件夹。
“Serilog”:{
“MinimumLevel”:{
“默认”:“警告”,
“覆盖”:{
“ComponentSpace”:“调试”
}
},
“WriteTo”:[
{
“名称”:“调试”
},
{
“名称”:“异步”,
“参数”:{
“配置”:[
{
“名称”:“文件”,
“参数”:{
“路径”:“logs/openid-.log”,
“rollingInterval”:“天",
"保留文件计数限制”:7,
“缓冲”:真,
“flushToDiskInterval”:“00:00:01”
}
}
]
}
}
]
}
为了支持 Serilog 和上述配置,应用程序中必须包含以下 NuGet 包。
Serilog.AspNetCore
Serilog.Sinks.Async
Serilog.Sinks.File
Program 类中的以下示例 CreateWebHostBuilder 方法删除了默认日志记录提供程序并添加了 Serilog 提供程序。
公共静态 IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args) .ConfigureLogging
(configureLogging => configureLogging.ClearProviders())
.UseSerilog((webHostBuilderContext, loggerConfiguration) =>
loggerConfiguration.ReadFrom.Configuration(webHostBuilderContext.Configuration) )
.UseStartup<启动>();
有关详细信息,请参阅 Serilog 文档。
Log4Net
以下是 log4net.config 中的示例 Log4Net 配置。日志被写入应用程序根文件夹下的“logs”文件夹。
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/" />
<datePattern value="'openid'-yyyyMMdd.'log'"/>
<staticLogFileName 值="false"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %5level %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
要支持 Log4Net 和上述配置,应用程序中必须包含以下 NuGet 包。
Microsoft.Extensions.Logging.Log4Net.AspNetCore
Program 类中的以下示例 CreateWebHostBuilder 方法删除了默认日志记录提供程序并添加了 Log4Net 提供程序。
公共静态 IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults
(webBuilder =>
{
webBuilder.ConfigureLogging(configureLogging => configureLogging.ClearProviders());
webBuilder.UseStartup<Startup>();
}) .ConfigureLogging(builder =>
{
builder.SetMinimumLevel(LogLevel.Debug);
builder.AddLog4Net("log4net.config");
});
有关详细信息,请参阅 Log4Net 文档。
NLog
以下是 nlog.config 中的示例 NLog 配置。日志被写入应用程序根文件夹下的“logs”文件夹。
<nlog xmlns="<a href="http://www.nlog-project.org/schemas/NLog.xsd" "="" title="http://www.nlog-project.org/schemas/NLog.xsd" target="_blank" style="color: rgb(97, 166, 199); text-decoration-line: underline !important;">http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="<a href="https://www.w3.org/2001/XMLSchema-instance" "="" title="https://www.w3.org/2001/XMLSchema-instance" target="_blank" style="color: rgb(97, 166, 199); text-decoration-line: underline !important;">http://www.w3.org/2001/XMLSchema-instance"
autoReload="true">
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<targets>
<target xsi:type ="File" name="logfile" fileName="${aspnet-appbasepath}\logs\${shortdate}.log"
layout="${longdate}|${level}|${message} ${exception:format =tostring}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
</rules>
</nlog>
为了支持 NLog 和上述配置,应用程序中必须包含以下 NuGet 包。
NLog
NLog.Web.AspNetCore
Program 类中的以下示例代码删除了默认的日志记录提供程序并添加了 NLog 提供程序。
public static void Main(string[] args)
{
var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
尝试
{
CreateHostBuilder(args).Build().Run();
}
最后
{
NLog.LogManager.Shutdown();
}
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults
(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.ConfigureLogging(logging =>
{
logging.ClearProviders() ;
logging.SetMinimumLevel(LogLevel.Trace);
})
.UseNLog();
上一篇:没有了!