技术浅浅聊

.Net Core WebApi 使用NLog+MySQL自动化

2018-08-13  本文已影响100人  喜欢孤独灬

直接进入正题

1、引入nuget包(注:这里我都是装的最新的包):

                             Install-Package NLog -Version 4.5.8

                             Install-Package NLog.Web.AspNetCore -Version 4.6.0

                             Install-Package MySql.Data -Version 8.0.12

2、新建log表,执行如下sql(这边其实也是可以配置,让NLog自动去生成NLog表,有兴趣的同学可以自己试试):

CREATE TABLE `log` (

  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `Application` varchar(50) DEFAULT NULL,

  `Logged` datetime DEFAULT NULL,

  `Level` varchar(50) DEFAULT NULL,

  `Message` text DEFAULT NULL,

  `UserName` varchar(512) Default Null,

  `ServerName` text Default Null,

  `Url` text NULL,

  `RemoteAddress` nvarchar(100) NULL,

  `Logger` text DEFAULT NULL,

  `Callsite` text DEFAULT NULL,

  `Exception` text DEFAULT NULL,

  PRIMARY KEY (`Id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

3、包引入之后,会生成一个NLog.config文件,NLog几乎所有操作都是通过这个配置文件完成的,我们在targets节点添加一个新的target,如图:不难看出其实它配置了数据库连接字符串,以及插入的log表的sql语句。

4、设置记录日志规则(这里我入库最小规则是Error,看业务需求自己定):

5、NLog服务依赖注入(StartUp.cs):

6、配置web请求(Program.cs),这一步如果不配置的话,相关的url,ip这些都会没有数据的:

7、结果:

8、总结,个人感觉,其实这个方式的原理跟直接使用Ado.net自己建表维护日志没多大差别,优势就是:直接全部通过配置完成,高效,低成本

上一篇下一篇

猜你喜欢

热点阅读