技术文章

了解最新技术文章

当前位置:首页>技术文章>技术文章
全部 7 常见问题 0 技术文章 7

启用 OpenID 跟踪

时间:2022-08-18   访问量:1059

可以启用 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();

上一篇:没有了!

下一篇:ASP.NET Core入门学习资源总结

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部