日志系统
日志记录是一项至关重要的功能,它帮助开发者跟踪应用程序的运行状况、诊断和监控问题。.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中设置)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南