ASP.NET LogInformation
最后修改于 2025 年 4 月 3 日
在本文中,我们将探讨 ASP.NET 8 中的 LogInformation 方法。此方法对于在 ASP.NET 应用程序中记录信息性消息至关重要。
ASP.NET 通过 ILogger 接口提供了强大的日志记录基础结构。LogInformation 用于记录突出应用程序流程的消息。
基本定义
LogInformation 是 ASP.NET 中 ILogger 接口的一个方法。它会写入描述正常应用程序操作的信息性日志消息。
这些消息通常用于跟踪应用程序流程、记录重要事件以及为调试提供上下文。它们的严重性低于警告或错误。
LogInformation 消息通常会写入各种输出,如控制台、文件或监控系统。级别可以在 appsettings.json 中配置。
ASP.NET LogInformation 示例
以下示例演示了在 ASP.NET 控制器中使用 LogInformation。
Program.cs
var builder = WebApplication.CreateBuilder(args); builder.Logging.ClearProviders(); builder.Logging.AddConsole(); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();
这会为应用程序配置控制台日志记录。ClearProviders 方法会删除默认的日志记录器,AddConsole 会添加控制台日志记录。
Controllers/WeatherController.cs
using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; [ApiController] [Route("[controller]")] public class WeatherController : ControllerBase { private readonly ILogger<WeatherController> _logger; private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; public WeatherController(ILogger<WeatherController> logger) { _logger = logger; } [HttpGet] public IEnumerable<WeatherForecast> Get() { _logger.LogInformation("Weather forecast requested at {Time}", DateTime.UtcNow); var forecast = Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); _logger.LogInformation( "Generated {Count} weather forecasts", forecast.Length); return forecast; } } public record WeatherForecast(DateTime Date, int TemperatureC, string? Summary) { public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); }
此控制器演示了 LogInformation 的用法。第一条日志记录了请求预测的时间,包括时间戳。
第二条日志记录了生成的预测数量。这两条日志都使用了结构化日志记录,并在消息模板中使用了命名参数。
ILogger 通过构造函数注入进行注入。泛型类型参数有助于按源类对日志进行分类。
结构化日志记录可实现更好的日志分析。诸如 {Time} 和 {Count} 之类的占位符将成为日志存储系统中的命名属性。
来源
在本文中,我们探讨了 ASP.NET 8 中的 LogInformation。此强大的日志记录方法有助于跟踪应用程序行为和诊断问题。