日志管理器
日志管理器 ILogger
接口提供了记录各种日志的方法。
1、获取实例
要使用日志管理器,首先得获取到它的实例。我们不推荐使用 new 构造一个实例,而是使用 LoggerFactory
工厂类来创建一个实例。该工厂类提供一个 CreateLogger 方法,可以接收一个 configName 参数,这个参数对应缓存配置(可参考 配置与扩展)中配置项的名称,如果未配置日志配置项,则返回默认的日志管理器单例。如下所示:
[TestMethod]
public void TestCreateLogger()
{
var logger = LoggerFactory.CreateLogger();
Assert.IsNotNull(logger); // DefaultLogger
}
在使用 IOC
的环境中,也可以通过构造注入或属性注入得到 ILogger
的实例。如下所示:
public class HomeController : Controller
{
private readonly ILogger _logger;
public HomeController(ILogger logger)
{
_logger = logger;
}
}
2、日志级别
日志级别分为:Info(信息)、Debug(调试)、Warn(警告)、Error(错误)、Fatal(致命)五个级别,分别对应 ILogger
接口的方法。如下所示:
[TestMethod]
public void TestLog()
{
var logger = LoggerFactory.CreateLogger();
logger.Info("开始处理......");
try
{
//处理
}
catch (Exception exp)
{
logger.Error("处理过程中发生错误。", exp);
}
logger.Info("完成处理");
}
[TestMethod]
public async Task TestLogAsync()
{
var logger = LoggerFactory.CreateLogger();
await logger.InfoAsync("开始处理......");
try
{
//处理
}
catch (Exception exp)
{
await logger.ErrorAsync("处理过程中发生错误。", exp);
}
await logger.InfoAsync("完成处理");
}
3、泛型类记录器
ILogger
接口的 Create 方法用于创建一个泛型的 Logger<T>
实例,以方便记录具体的类型。