日志系统

日志记录是一项至关重要的功能,它帮助开发者跟踪应用程序的运行状况、诊断和监控问题。.NET Core 提供了一个灵活且易于使用的日志系统,支持多种日志级别、日志提供程序以及配置方式。

日志级别

Trace(用于详细诊断信息)

Debug(用于调试信息)

Information(用于常规信息性消息)

Warning(用于表示某些意外事件的提示)

Error(用于严重错误)

Critical(用于非常严重的错误)

创建日志

public class HomeController : Controller
{
// 通过构造函数注入logger
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
// 调用日志方法
_logger.LogInformation($"{DateTime.Now} 访问了首页");
return View();
}
}

第三方日志框架

对于更复杂的日志需求,可以考虑使用第三方日志框架。例如,Serilog 提供了丰富的日志输出格式和支持;NLog 则以其灵活性著称,支持多种日志输出目标;而 Log4Net 是一个基于 Apache Log4j 的日志库,广泛应用于 .NET 应用程序中

Nlog简单使用

官网地址:https://nlog-project.org/

文档地址:https://github.com/NLog/NLog/wiki

1. 安装

2. 配置NLog配置文件

在项目根目录添加NLog.config文件

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Warn"
internalLogFile="internal-nlog.txt">
<!--定义了一个名为 logfile 的文件目标,它将接收所有来自任意命名空间的至少是Warning级别的日志消息-->
<targets>
<target xsi:type="File" name="logfile" fileName="${basedir}/logs/logfile.txt"
layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Warning" writeTo="logfile" />
</rules>
</nlog>

3. 配置NLog服务

在 Program.cs 中配置 NLog服务

//清除默认日志程序,启用NLog
builder.Logging.ClearProviders();
builder.Host.UseNLog();

4. 使用NLog记录日志

public class HomeController : Controller
{
// 创建Logger实例
private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
public IActionResult Index()
{
// 记录不同级别的日志信息
Logger.Trace("Trace message");
Logger.Debug("Debug message");
Logger.Info("Info message");
Logger.Warn("Warn message");
Logger.Error("Error message");
Logger.Fatal("Fatal message");
return View();
}
}

5. 查看日志文件

可以看到只记录了Warning级别以上的日志消息(在NLog.config中设置)

posted @   getRainbow  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示