现代Web框架中如何通过文件配置日志信息输出

posted at 2020.8.12 12:33 by 风信子

  现代Web框架ASP.NET Core支持适用于各种日志记录提供程序的API,通过内置提供程序及方法,可向一个或多个目标发送日志,还可插入第三方记录框架。

  ASP.NET Core日志模块中提供了用于控制台(Microsoft.Extensions.Logging.Console)、调试(Microsoft.Extensions.Logging.Debug)、事件日志(Microsoft.Extensions.Logging.EventLog)TraceSourse(Microsoft.Extensions.Logging. TraceSourse)等功能的程序。

  日志记录主要涉及三个核心对象,分别是LoggerLoggerFactoryLoggerProvider;定义了六个日志级别(LogLevel),按照重要性排序为:TraceDebug Information Warning Error CriticalLogging包为每个LogLevel值提供Helper扩展方法,允许开发人员调用。

  举一个实例来具体实现通过文件配置日志信息的输出:

      vs2019中打开appsettings.json文件,修改Logging部分,以供日志记录程序加载使用。

   代码:

{ 
 "Logging": 
 { 
 "IncludeScopes": false, "LogLevel": 
 { 
 "Default": "Warning", 
 "Microsoft": "Warning" 
 } 
 }

   LogLevel项表示日志级别,其中Default项表示默认日志,其值表示记录默认日志的最低日志级别;设置IncludeScopes的日志项指定了是否为相关日志启用日志作用域。

  ②vs2019中打开Program.cs文件,注册日志服务。

 public class Program
 { 
 public static void Main(string[] args) 
 { 
 // BuildWebHost(args).Run(); 
 var host = BuildWebHost(args); 
 host.Run(); 
 } 
 public static IWebHost BuildWebHost(string[] args) => 
 WebHost.CreateDefaultBuilder(args) 
 .ConfigureAppConfiguration((
 hostingContext, config) => 
 { 
 var env = hostingContext.HostingEnvironment; 
 config.AddJsonFile("appsettings.json", optional: 
 true, reloadOnChange: true); }) 
 .ConfigureLogging((hostingContext, logging) => 
 { 
 logging.AddConfiguration(hostingContext.Configuration
 .GetSection("Logging")); 
 logging.AddConsole(options => options.IncludeScopes = true); 
 logging.AddDebug();
}) 
 .UseStartup<Startup>() 
 .Build(); 
 }
 }
  建立如下视图代码:
 public void OnGet() 
 { 
 using (m_logger.BeginScope("--日志信息作用域,显示日志--")) 
 { int eventId = 10002; 
 m_logger.LogInformation(eventId, "请把.NET Core的版本升级到({version})", "2.0.0");
 m_logger.LogWarning(eventId, "用户数量接近上限({maximum}) ", 200); 
 m_logger.LogError(eventId, "用户登录失败(用户名:{User},业务系统:{System})", "张三", "OA"); 
 }
 }
启动应用程序,效果如下:
 控制台窗口
 调试输出窗口

Tags: , , , , , ,

IT技术

Add comment

  Country flag

biuquote
微笑得意调皮害羞酷大笑惊讶发呆喜欢可怜尴尬闭嘴噘嘴皱眉伤心抓狂呕吐坏笑漫骂发怒
Loading