开发随笔记录——ASP.NET Core日志处理
声明:本文章使用ASP.NET Core 3.1
众所周知,日志对于开发人员的帮助简直就是如鱼得水。目前我个人认为好用的日志组件有Log4Net、NLog。本文章使用的是NLog。
首先要在NuGet程序包中安装NLog.Web.AspNetCore,该库依赖NLog.Extensions.Logging,而NLog.Extensions.Logging又依赖于Nlog。
之后在Program.cs文件中添加.UseNLog();方法,如图所示:
之后进行配置文件(NLog.config)的添加,代码如下:
<?xml version="1.0"?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" internalLogLevel="Warn" internalLogFile="${basedir}\logs\internal-nlog.txt"> <extensions> <add assembly="NLog.Web.AspNetCore"/> </extensions> <targets> <target name="allfile" xsi:type="File" fileName="${basedir}\logs\${shortdate}.log" encoding="utf-8" layout="[${longdate}|${callsite}][${machinename}][${level}] ${message} ${exception}" /> </targets> <rules> <!--All logs, including from Microsoft--> <logger name="*" minlevel="Trace" writeTo="allfile" /> <!--Skip Microsoft logs and so log only own logs--> <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" /> <logger name="*" minlevel="Trace" writeTo="ownFile-web" /> </rules> </nlog>
具体的配置信息,可以根据自身需要进行更改。(博主个人认为,以上配置已经够用了)
最后就可以在控制器中进行注入使用了,如下代码:
using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace Demo.Controllers { [Route("api/[controller]")] [ApiController] public class TestController : ControllerBase { private readonly ILogger<TestController> _logger; public NLogTestController(ILogger<TestController> logger) { _logger = logger; } [HttpGet] public IActionResult Get() { _logger.LogError("这是错误信息"); _logger.LogDebug("这是调试信息"); _logger.LogInformation("这是提示信息"); return Ok(); } } }
之后进行调用API就会生成对应的日志文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术