Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

前几天分享的"[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www.cnblogs.com/yilezhu/p/9416439.html]" 反响还行。有网友就说有了NLog+MySql的组合,那如果我是用SqlServer怎么使用NLog呢?于是乎,这篇“Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验”就诞生了!关于记录到文本文件里面的方法上篇文章也已经说明了。而且NLog+SqlServer的组合跟NLog+MySql的组合使用方法很类似知识配置不一样。因此这篇文章会很精简,直接讲使用了!
作者:依乐祝
本文地址:https://www.cnblogs.com/yilezhu/p/9451282.html

NLog+SqlServer的组合在Net Core中怎么用啊?

  1. 关于怎么安装,使用,请看我的上篇文章“[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www.cnblogs.com/yilezhu/p/9416439.html]”。用法一样,只是如果你需要把MySql的程序集改成“System.Data.SqlClient”.依赖项截图如下所示:

    1533814354906

  2. 打开Nlog.config文件,把NLog的配置修改成如下所示。我写的只是参考,大家可以自由发挥:

    <?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"throwExceptions="true"internalLogLevel="warn"internalLogFile="logfiles/internal-nlog.txt"><targets><target xsi:type="Null" name="blackhole" /><target name="database" xsi:type="Database"dbProvider="System.Data.SqlClient"connectionString="Data Source=127.0.0.1;Initial Catalog=MiddleData;User ID=lzhu;Password=bl123456;"><!--
    create table NLog (Id                   int                  identity,Application          nvarchar(50)         null,Logged               datetime             null,Level                nvarchar(50)         null,Message              nvarchar(512)        null,Logger               nvarchar(250)        null,Callsite             nvarchar(512)        null,Exception            nvarchar(512)        null,constraint PK_NLOG primary key (Id)
    )--><commandText>insert into nlog (Application, Logged, Level, Message,Logger, CallSite, Exception) values (@Application, @Logged, @Level, @Message,@Logger, @Callsite, @Exception);</commandText><parameter name="@application" layout="NLogTestDemo" /><parameter name="@logged" layout="${date}" /><parameter name="@level" layout="${level}" /><parameter name="@message" layout="${message}" /><parameter name="@logger" layout="${logger}" /><parameter name="@callSite" layout="${callsite:filename=true}" /><parameter name="@exception" layout="${exception:tostring}" /></target></targets><rules><!--Skip Microsoft logs and so log only own logs--><logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" /><logger name="NLogTestDemo.*" minlevel="Info" writeTo="database" /></rules>
    </nlog>
  3. 上面的代码中我是以写入SqlServer为例进行的NLog配置。下面就可以进行简单地使用了。首先需要在。首先在Startup中的Configure中来加入中间件:

     public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}//使用NLog作为日志记录工具loggerFactory.AddNLog();//引入Nlog配置文件env.ConfigureNLog("Nlog.config");//app.AddNLogWeb();app.UseMvc();}
  4. 在Program中进行如下配置:

    public class Program{public static void Main(string[] args){CreateWebHostBuilder(args).Build().Run();}public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>WebHost.CreateDefaultBuilder(args).UseNLog().UseStartup<Startup>();}
  5. 下面就可以在代码中愉快的玩耍了,

      private readonly Logger nlog = LogManager.GetCurrentClassLogger(); //获得日志实;// GET api/values[HttpGet]public ActionResult<string> Get(){nlog.Log(NLog.LogLevel.Debug, $"yilezhu测试Debug日志");nlog.Log(NLog.LogLevel.Info, $"yilezhu测试Info日志");try{throw new Exception($"yilezhu故意抛出的异常");}catch (Exception ex){nlog.Log(NLog.LogLevel.Error, ex, $"yilezhu异常的额外信息");}return "yilezhu的返回信息";}
  6. 下面运行起来项目,然到数据库里面就可以看到记录的日志信息如下所示:

    1533814568292

    这里大家可能会问,为什么没有Debug信息输出呢,这是因为我们上面NLog配置设置的记录日志的最低级别为Info.所以比Info级别小的Debug信息不会记录。如果想记录的话就把这个级别设置成Debug或者比Debug小的Trace就可以记录了。如下图所示:

    1533303848950

源码下载

https://download.csdn.net/download/qin_yu_2010/10594141

总结

本文开头讲述了上篇关于“[Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验][http://www.cnblogs.com/yilezhu/p/9416439.html]”说起,然后引出轻量级简单易用的NLog+SqlServer组合,并通过一个简单地api项目讲述了NLog+SqlServer组合如何在Net Core中使用。以及SqlServer的建表语句。实例代码都跟上篇文章很相似。希望能对大家有所参考!

转载于:https://www.cnblogs.com/yilezhu/p/9451282.html

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

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

相关文章

从单片机步入Linux之文件系统的构建

大家好&#xff0c;我是情报小哥&#xff01;本文为【从单片机步入嵌入式Linux】系列文章的第四篇文章&#xff0c;前面三篇大家有时间也可以回头阅读一下&#xff0c;本系列文章的很多知识我都会从裸机开发和理解的角度来分析&#xff0c;帮助大家迅速理解Linux系统相关的知识…

pythongui界面小程序_python界面小程序

Python支持多種圖形界面的第三方庫&#xff0c;包括&#xff1a;TkwxWidgetsQtGTK等等。但是Python自帶的庫是支持Tk的Tkinter&#xff0c;使用Tkinter&#xff0c;無需安裝任何包&#xff0c;就可以直接使用。本章簡單介紹如何使用Tkinter進行GUI編程。Tkinter我們來梳理一下概…

关于Linq to SQL 的“异常详细信息: System.InvalidCastException: 指定的转换无效。”

开发环境&#xff1a;VS2010,SQL Server2005,Windows7,使用LINQ to SQL作为ORM 运行环境&#xff1a;Windows2003(IIS6),.NET 3.5 SP1,SQL Server2000 症状&#xff1a;开发环境下一切正常&#xff0c;在运行环境中出现如下错误&#xff1a; 代码 指定的转换无效。 说明: 执行当…

哈希存储 java_Java容器系列之HashMap的存储

Java容器系列之HashMap概要本文将结合Java源码总结HashMap的存储结构及其扩容策略&#xff0c;并根据这些特点给出使用HashMap的最佳实践。本文不再介绍HashMap的基本使用&#xff0c;有需要的请先学习下Java容器的基础知识。存储结构HashMap的核心问题是如何保证读写的速度&am…

你增长的年龄,是因为丢掉了快乐吗?

这是周末&#xff0c;想写一篇文章给自己的一个朋友&#xff0c;试看能否解开他不安的情绪。我朋友是我真的朋友几年前我还是很害羞的我&#xff0c;有一次开技术会上&#xff0c;他公开的介绍了我&#xff0c;我觉得是一种认可&#xff0c;当然&#xff0c;也不会有一个不喜欢…

redhat5中架设DHCP服务器与DHCP中继

作者&#xff1a;奇异果Wickey Email&#xff1a;hkb178149081163.com 实验平台&#xff1a;VMvare 系统&#xff1a;RedHat5 软件包&#xff1a;DHCP-3.0.5 模拟需求分析&#xff1a;&#xff08;暂无&#xff09; 拓扑图&#xff1a; 1. 配置DHCPServer IP与GW 2. 安装DHCP…

MCU HardFault问题查找和破解方法

一、HardFault产生原因和常规分析方法二、HardFault解决方法分析三、HardFault回溯的原理四、操作分析流程&#xff1a;1. 心里明白徒手分析法2. CmBacktrace 天龙大法五、总结一、HardFault产生原因和常规分析方法在嵌入式开发中&#xff0c;偶尔会遇到Hard Fault死机的异常&…

ASP.NET Core的身份认证框架IdentityServer4--入门【转】

原文地址 Identity Server 4是IdentityServer的最新版本&#xff0c;它是流行的OpenID Connect和OAuth Framework for .NET&#xff0c;为ASP.NET Core和.NET Core进行了更新和重新设计。在本文中&#xff0c;我们将快速了解IdentityServer 4存在的原因&#xff0c;然后直接进入…

Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

栈是什么&#xff1f;栈有什么作用&#xff1f;首先&#xff0c;栈 (stack) 是一种串列形式的 数据结构。这种数据结构的特点是 后入先出 (LIFO, Last In First Out)&#xff0c;数据只能在串列的一端 (称为&#xff1a;栈顶 top) 进行 推入 (push) 和 弹出 (pop) 操作。根据栈…

内核抢占会让内核调度更好吗?

大家好&#xff0c;我是老吴的朋友&#xff0c;这篇文章转发自老吴的公众号。今天要分享的是抢占相关的基础知识。本文以内核抢占为引子&#xff0c;概述一下 Linux 抢占的图景。我尽量避开细节问题和源码分析。什么是内核抢占&#xff1f;别急&#xff0c;咱们慢慢来。先理解抢…

php 解压dat,电脑微信dat文件怎么打开

微信dat转码软件使用操作说明在线解码,各位同学下载软件后&#xff0c;如何操作?如何找到dat文件?如何使用?又有哪些注意事项呢?这里会为大家一一道来。问题1 &#xff1a;如果下载失败怎么办?请先检查网络&#xff0c;软件并没有放在我的网站上&#xff0c;而是放在大厂七…

优雅地用宏实现环形缓冲区

之前写的环行缓冲区文章柔性数组和环形队列之间的故事C语言&#xff0c;环形队列循环缓冲区是嵌入式软件工程师在日常开发过程中的关键组件。多年来&#xff0c;互联网上出现了许多不同的循环缓冲区实现和示例。我非常喜欢这个模块&#xff0c;可以GitHub上找到这个开源的 CBUF…

XP访问Linux共享错误提示

XP访问RHEL5共享错误提示 [rootlocalhost samba]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 …

一个漂亮的电子钟,纪念我们逝去的青春(含软硬件资料)

来源&#xff1a;阿莫论坛&#xff0c;作者&#xff1a;humancn微信公众号&#xff1a;芯片之家&#xff08;ID&#xff1a;chiphome-dy&#xff09;公众号不少粉丝&#xff0c;大一大二做的第一个项目&#xff0c;都是电子时钟吧&#xff0c;非常经典的STC89C52DS1302数码管组…

JZOJ 5776. 【NOIP2008模拟】小x游世界树

5776. 【NOIP2008模拟】小x游世界树 (File IO): input:yggdrasil.in output:yggdrasil.out Time Limits: 1500 ms Memory Limits: 262144 KB Detailed Limits Goto ProblemSetDescription 小x得到了一个(不可靠的)小道消息&#xff0c;传说中的神岛阿瓦隆在格陵兰海的某处,据…

SQL Server 2005中的分区表(一):什么是分区表?为什么要用分区表?如何创建分区表?...

如果你的数据库中某一个表中的数据满足以下几个条件&#xff0c;那么你就要考虑创建分区表了。 1、数据库中某个表中的数据很多。很多是什么概念&#xff1f;一万条&#xff1f;两万条&#xff1f;还是十万条、一百万条&#xff1f;这个&#xff0c;我觉得是仁者见仁、智者见智…

java图形界面颜色随机变换,JavaScript实现鼠标移入随机变换颜色

大家好&#xff01;今天分享一个在 JavaScript中&#xff0c;实现一个鼠标移入可以随机变换颜色。/* 这里定义一下div(块元素)已下span 标签的宽.高.边框线以及边框线的颜色*/span{display: block;width: 80px;height: 80px;border: 1px solid #000000;float: left;}var adocum…

Vscode 用Filter Line看日志,很爽

因为某种原因&#xff0c;我抛弃了Notepad然后一直没有找到一个比较好的日志查看软件&#xff0c;最近发现Vscode里面的这个插件不错&#xff0c;给大家推荐一下。中文详情链接&#xff1a;https://everettjf.github.io/2018/07/03/vscode-extension-filter-line/推荐阅读&…

zblog php 七牛缩略图,zblog中Gravatar头像不显示解决方法

解决zblog博客Gravatar头像不显示方法一第一个&#xff0c;解决zblog博客Gravatar头像不显示解决方法是对其进行修复操作。造成不显示的原因主要是Gravatar头像地址错误。所以&#xff0c;我们需要对头像地址进行更改。1、进入自己的博客后台。2、找到现在使用的主题模板中的&a…

SpringCloud学习--微服务架构

目录 微服务架构快速指南 SOA Dubbo Spring Cloud Dubbo与SpringCloud对比 微服务(Microservice)架构快速指南 什么是软件架构?    软件架构是一个包含各种组织的系统组织&#xff0c;这些组件包括 Web服务器, 应用服务器, 数据库,存储, 通讯层), 它们彼此或和环境存在关系…