ILogger(Microsoft.Extensions.Logging.Logger)提供了多种方法来记录日志,其中最常用的是Log方法。该方法可以接受一个或多个对象作为参数来记录日志消息。当ILogger接收到多个参数时,它会将这些参数作为格式化字符串的占位符进行解释。
例如,以下代码将使用ILogger记录一条信息级别为Information的日志消息,该消息包含两个参数:username和message。
using Microsoft.Extensions.Logging;
public class MyClass
{
private readonly ILogger _logger;
public MyClass(ILogger<MyClass> logger)
{
_logger = logger;
}
public void LogInfo(string username, string message)
{
_logger.LogInformation("User {0} sent message: {1}", username, message);
}
}
在这个示例中,{0}和{1}都是占位符,它们将分别被参数username和message的字符串值所替换。
需要注意的是,在执行日志记录之前,ILogger还会进行严格的参数检查,以确保日志消息中的每个占位符都有相应的参数提供。如果没有为每个占位符提供参数,则会抛出异常。