现代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)等功能的程序。

   日志记录主要涉及三个核心对象,分别是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");
}
}

 ④启动应用程序,效果如下:

 控制台窗口 

调试输出窗口

Tags: , , , , , ,

IT技术

添加评论

  Country flag

biuquote
  • 评论
  • 在线预览
Loading