.Net日志之nlog

1. 介绍

NLog是适用于各种.NET平台(包括.NET标准)的灵活,免费的日志记录平台,支持数据库、文件、控制台。

2. 输入到文件

2.1 引用nuget包

    <PackageReference Include="NLog" Version="4.7.6" /><PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />

2.2 创建NLog配置文件

在项目目录中新建一个xml文件的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"><targets async="true"><target name="file" xsi:type="File"layout="${longdate} ${logger} ${message}${exception:format=ToString}"fileName="${basedir}/logs/${date:format=yyyy-MM-dd}.txt"keepFileOpen="true"encoding="utf-8" /><target name="console" xsi:type="Console"><attribute name="time" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff zzz}" /><attribute name="category" layout="${logger}" /><attribute name="log_level" layout="${level:lowerCase=true}" /><attribute name="message" layout="${message}" /><attribute name="trace_id" layout="${aspnet-TraceIdentifier:ignoreActivityId=true}" /><attribute name="user_id" layout="${aspnet-user-identity}" /><!--取得该条日志生产者名字--><attribute name="exception" layout="${exception:format=tostring}" /></target></targets><rules><logger name="*" minlevel="Info" writeTo="console"   ruleName="console" /><logger name="*" minlevel="Debug" writeTo="file" /></rules>
</nlog>

2.3 Program中修改

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;
using System;namespace NlogDemo
{public static class Program{public static void Main(string[] args){var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();try{logger.Debug("init main");CreateHostBuilder(args).Build().Run();}catch (Exception ex){//NLog: catch setup errorslogger.Error(ex, "Stopped program because of exception");throw;}finally{NLog.LogManager.Shutdown();}}public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).ConfigureLogging((_, loggerBuilder) =>{loggerBuilder.ClearProviders();loggerBuilder.SetMinimumLevel(LogLevel.Information);}).UseNLog();}
}

2.4 配置日志级别

{"Logging": {"LogLevel": {"Default": "Information","Microsoft": "Warning","Microsoft.Hosting.Lifetime": "Information"}}
}

2.5 控制器使用

        private readonly ILogger<HomeController> _logger;public HomeController(ILogger<HomeController> logger){_logger = logger;_logger.LogDebug(1, "NLog injected into HomeController");}[HttpGet]public string Get(){_logger.LogTrace("Trace");_logger.LogDebug("debug");_logger.LogInformation("info");_logger.LogWarning("warn");_logger.LogError("error");_logger.LogCritical("Critical");return default;}

查看输出的日志文件

image.png

3. 参考文档

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为了证明自己有多能喝,理工科的学生竟做出这种事

全世界有3.14 % 的人已经关注了数据与算法之美当酒鬼止不住地说“我没有醉”、“再来一杯”的时候&#xff0c;他基本上已经醉得不行了。此时&#xff0c;他会说出一堆毫无逻辑的话&#xff0c;让旁人听了不知所云。这就是最为常见的酒鬼形象了。直到某一天&#xff0c;死理性派…

65 + iPhone应用程序网站创意设计灵感(上篇)

这里是一个巨大的艺术创作的iPhone APP网站设计的灵感收集。这些网站设计&#xff0c;特殊的配色方案&#xff0c;详细的图标和高品质的图形使用&#xff0c;如此精彩。希望能给你带来灵感。 Analog App Courier App Thermo App Faces Ecoki Motionoto Barista Moneybook App L…

php程序员跟java一样吗,【后端开辟】php程序员能够转java吗?

php顺序员可以转java吗&#xff1f;可以。关于专业顺序员来讲&#xff0c;在差别的开辟场景下采纳差别的编程言语是比较罕见的事变&#xff0c;所以许多顺序员在事情一段时候以后都邑控制多种差别的编程言语&#xff0c;比方不少Web顺序员都邑同时控制Java、PHP、C#等编程言语。…

你管这叫线程安全?

来来来&#xff0c;面试八股文&#xff1f;今天我们从什么叫"线程安全"聊起&#xff1f;文末"边吃边聊"。今日份的干粮&#xff1a;1.什么叫线程安全&#xff1f;2.线程安全与变量的关系&#xff1f;•变量又与堆/栈/静态存储区有密切关系什么叫线程安全&a…

经济学家告诉你,胸越大的女生越会花钱!

全世界有3.14 % 的人已经关注了数据与算法之美大概两周前回加拿大的航班上&#xff0c;我在机舱尾部跟一位空姐聊了很久。当空姐小妹双眼向下一瞥&#xff0c;略微停顿之后问我“班组要在这里呆四天&#xff0c;不知道该干什么去”的时候&#xff0c;我认认真真的为自己叹了口气…

讲100个科学道理,不如做这些有趣的理科实验!

玩具和学习看似是两个对立的东西&#xff0c;孩子天性爱玩&#xff0c;家长却希望孩子能多学习。不一定非要啃课本才能汲取知识&#xff0c;有时候&#xff0c;在轻松有趣的游戏中也能学到课堂上学不到的知识。让学习变得有趣、高效——给孩子讲100个科学道理&#xff0c;不如带…

《权力》读书笔记

1 为什么权力只为某些人所拥有我们生活在一个充满等级制度的世界里&#xff0c;等级的存在就意味着竞争&#xff0c;而且越往上&#xff0c;职位就越少&#xff0c;竞争也就越激烈。只有了解权力的原则&#xff0c;并愿意运用它们的人&#xff0c;才可以参与这样的竞争&#xf…

$_GET,$_post与$_REQUEST

PHP $_GET $_GET 变量是一个数组&#xff0c;内容是由 HTTP GET 方法发送的变量名称和值。 PHP $_POST $_POST 变量用于收集来自 method"post" 的表单中的值。 $_POST 变量 $_POST 变量是一个数组&#xff0c;内容是由 HTTP POST 方法发送的变量名称和值。 $_POST 变…

嘘!偷偷教你们一个在双十一省钱的办法!

各位小可爱&#xff0c;大可爱&#xff0c;大家晚上好~一年一度的双11即将到来&#xff01;&#xff01;&#xff01;小木冒着被砍头的风险为大家争取了好多好多福利绝对比平时更优惠更省钱哦&#xff01;&#xff01;&#xff01;活动时间&#xff1a;10月27日-11月11日&#…

ML.NET 示例:图像分类模型训练-首选API(基于原生TensorFlow迁移学习)

ML.NET 版本API 类型状态应用程序类型数据类型场景机器学习任务算法Microsoft.ML 1.5.0动态API最新控制台应用程序和Web应用程序图片文件图像分类基于迁移学习的TensorFlow模型再训练进行图像分类DNN架构&#xff1a;ResNet、InceptionV3、MobileNet等问题图像分类是深度学习学…

php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...

PHP GD库生成图像的几个函数总结使用GD库中提供的函数动态绘制完成图像以后&#xff0c;就需要输出到浏览器或者将图像保存起来。在PHP中&#xff0c;可以将动态绘制完成的画布&#xff0c;直接生成GIF、JPEG、PNG和WBMP四种图像格式。可以通过调用下面四个函数生成这些格式的图…

HDU 1964 Pipes

HDU_1964 这个题目只需要把求回路数量的dp方程改写成取最优解的dp方程即可。 更多和插头dp相关的题目可以参考胡浩的博客&#xff1a;http://www.notonlysuccess.com/index.php/plug-dp-complete/。 #include<stdio.h> #include<string.h> #define MAXD 15 #define…

算法证明:女生遇到心动的男人一定要追!

全世界有3.14 % 的人已经关注了数据与算法之美我来讲恋爱中的博弈&#xff0c;不&#xff0c;我来讲恋爱中的算法&#xff0c;不&#xff0c;我来讲算法&#xff01;&#xff01;有个著名的问题&#xff0c;叫做 stable matching。早年是一个可爱的俄罗斯老头在图论课上教我的&…

php文字左右滚动代码,JavaScript

js文字横向滚动特效本文为大家分享了js文字横向滚动特效代码&#xff0c;具体实现内容如下&#xff1a;页面布局恭喜793765***获得 50元巨人点卡奖励恭喜793765***获得 50元巨人点卡奖励恭喜793765***获得 50元巨人点卡奖励恭喜793765***获得 50元巨人点卡奖励恭喜793765***获得…

记一次 .NET 某教育系统 异常崩溃分析

一&#xff1a;背景 1. 讲故事这篇文章起源于 搬砖队大佬 的精彩文章 WinDBg定位asp.net mvc项目异常崩溃源码位置 &#xff0c;写的非常好&#xff0c;不过美中不足的是通览全文之后&#xff0c;总觉得有那么一点不过瘾&#xff0c;就是没有把当时抛异常前的参数给找出来。。。…

Json.Net系列教程 3.Json.Net序列化和反序列化设置

上节补充首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.我举例说明DataTable的序列化和反序列化.创建一个DataTable对象,如下: DataTable dt new DataTable();DataColumn dcName new DataColumn("Name");DataColu…

5道谷歌面试题:即使是天才也要怀疑自己能力了(附答案)

全世界只有3.14 % 的人关注了数据与算法之美谷歌&#xff0c;美国的跨国科技企业&#xff0c;致力于互联网搜索、云计算、广告技术等领域&#xff0c;开发并提供大量基于互联网的产品与服务。这样一家实力雄厚前景无量的公司是众多求职者梦寐以求的地方&#xff0c;然而&#x…

红玫瑰数java的意思,红玫瑰的含义,玫瑰花个数的含义

导航&#xff1a;网站首页 >红玫瑰的含义,玫瑰花个数的含义时间&#xff1a;2018-2-27相关问题:匿名网友:1朵玫瑰代表——我的心中只有你ONLY YOU&#xff01;2朵玫瑰代表——这世界只有我俩&#xff01;3朵玫瑰代表——我爱你I LOVE YOU&#xff01;4朵玫瑰代表——至死不渝…

(装载)C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别

// 获取程序的基目录。System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径。System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName // 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。System.Environment.CurrentDirectory // 获…

[Abp vNext 源码分析] - 18. 单元测试

简介ABP vNext 框架使用 xUnit 作为单元测试组件&#xff0c;官方的所有模块都编写了大量的 单元/集成测试 确保功能正常。由于 ABP vNext 模块化系统的原因&#xff0c;开发人员在建立单元测试项目的时候需要集成 Volo.Abp.UnitTest 项目&#xff0c;这样在执行单元测试的时候…