分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

.NET Core使用Nlog记录日志

发布时间:2023-09-06 01:37责任编辑:蔡小小关键词:.NET

1.引入Nuget包

      Nlog

      Nlog.Web.AspNetCore

2.添加nlog配置文件

 1 <?xml version="1.0" encoding="utf-8" ?> 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 3 ??????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 ?????autoReload="true" 5 ???????internalLogLevel="Warn" 6 ???????internalLogFile="internal-nlog.txt"> 7 ?????<!--define various log targets--> 8 ?????<targets> 9 ????????<!--write logs to file-->10 ?????????<target xsi:type="File" name="allfile" fileName="nlog-all-${shortdate}.log"11 ??????????????????layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />12 ????13 ?????????<target xsi:type="File" name="ownFile-web" fileName="nlog-my-${shortdate}.log"14 ??????????????????layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />15 ????????<target xsi:type="Null" name="blackhole" />16 ??</targets>17 ?????<rules>18 ?????????<!--All logs, including from Microsoft-->19 ?????????<logger name="*" minlevel="Trace" writeTo="allfile" />20 ????21 ???????<!--Skip Microsoft logs and so log only own logs-->22 ?????????<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />23 ?????????<logger name="*" minlevel="Trace" writeTo="ownFile-web" />24 ??</rules>25 </nlog>

3.使用nlog

在StartUp.cs中配置配置日志中间件

 1 ??public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory) 2 ????????{ 3 ????????????app.UseStaticFiles(); 4 ????????????//使用NLog作为日志记录工具 5 ????????????loggerFactory.AddNLog(); 6 ????????????//引入Nlog配置文件 7 ????????????env.ConfigureNLog("nlog.config"); 8 ????????????if (env.IsDevelopment()) 9 ????????????{10 ????????????????app.UseDeveloperExceptionPage();11 ????????????} 12 ????????????app.UseMvc();13 ????????}

4.在程序中中使用nlog写日志

下面是注入到控制器中的示例

 1 ?public class ValuesController : Controller 2 ????{ 3 ??????4 ????????private ILogger<ValuesController> logger; 5 ????????public ValuesController(ILogger<ValuesController> _logger) 6 ????????{ 7 ????????????logger = _logger; 8 ????????} 9 ????????// GET api/values10 ????????[HttpGet]11 ????????public string Get()12 ????????{13 ????????????logger.LogError("123");14 ????????????return "value";15 ????????}

调用该api,然后查看文件目录

5.日志文件生成在指定目录下

大家会发现文件是生成在项目目录下的,日志多的时候,会导致文件目录太乱

此时,只需更改nlog.config中的内容如下即可生成在logs目录里

 <targets> ???????<!--write logs to file--> ????????<target xsi:type="File" name="allfile" fileName="logs/all/nlog-all-${shortdate}.log" ?????????????????layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" /> ????????????<target xsi:type="File" name="ownFile-web" fileName="logs/my/nlog-my-${shortdate}.log" ?????????????????layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" /> ???????<target xsi:type="Null" name="blackhole" /> ?</targets>
 

.NET Core使用Nlog记录日志

原文地址:https://www.cnblogs.com/qmhuang/p/8305915.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved