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)等功能的程序。
日志记录主要涉及三个核心对象,分别是Logger、LoggerFactory和LoggerProvider;定义了六个日志级别(LogLevel),按照重要性排序为:Trace、Debug Information Warning Error Critical。Logging包为每个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");}}
④启动应用程序,效果如下:
控制台窗口
调试输出窗口
e3f4172c-415e-4f58-b82f-1b1a62cfdc2f|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags: app, Web, 程序, 代码, 方法, 扩展方法, 模
IT技术