Asp.Net Core使用NLog+Mysql的几个小问题
项目中使用NLog记录日志,很好用,之前一直放在文本文件中,准备放到db中,方便查询。
项目使用了Mysql,所以日志也放到Mysql上,安装NLog不用说,接着你需要安装Mysql.Data安装包:
Install-Package MySql.Data
接着打开你的NLog,新增一个target
:
<target xsi:type="Database"
name="mysqlDb"
dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
connectionString="Server=127.0.0.1;User Id=root;Password=root;Database=nlog;Character Set=utf8;SslMode=none;" />
如果你的数据库连接不支持SSL的话(开发机一般都没有吧),一定要加上
SslMode=none
接着你需要创建数据库和表,建议你手动去mysql执行脚本,如果想自动创建的话,你可以查看这里
创建数据库脚本:
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;
然后修改下NLog中刚刚我们添加的target
:
<target xsi:type="Database"
name="mysqlDb"
dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
connectionString="Server=127.0.0.1;User Id=root;Password=root;Database=nlog;Character Set=utf8;SslMode=none;">
<commandText>
insert into log (
Application, Logged, Level, Message,
Username,
ServerName, Url,RemoteAddress,
Logger, CallSite, Exception
) values (
@Application, @Logged, @Level, @Message,
@Username,
@ServerName, @Url,@RemoteAddress,
@Logger, @Callsite, @Exception
);
</commandText>
<parameter name="@application" layout="yourappname" />
<parameter name="@logged" layout="${date}" />
<parameter name="@level" layout="${level}" />
<parameter name="@message" layout="${message}" />
<parameter name="@username" layout="${identity}" />
<parameter name="@serverName" layout="${aspnet-request-host}" />
<parameter name="@url" layout="${aspnet-request-url:IncludeQueryString=true}" />
<parameter name="@remoteAddress" layout="${aspnet-Request-ip}" />
<parameter name="@logger" layout="${logger}" />
<parameter name="@callSite" layout="${callsite}" />
<parameter name="@exception" layout="${exception:tostring}" />
</target>
可以看到在commandText
中是添加日志的sql语句,下面就是各参数的值,使用的默认[layout]((https://github.com/NLog/NLog/wiki/Layout-Renderers),你也可以自定义layout。
现在你可以启动你的项目,执行没有问题,但是在上述aspnet-request
开头的一些值没有获取到,都为空,这是因为没有安装NLog.Web
包,使用Nuget或者在Nuget控制台输入:
Install-Package NLog.Web
再次运行,你会看到你的日志中已经记录的很全面了。
之前很久没写,觉得很多没必要写,但现在发现,还是记录下来比较好,或许对你有用呢,对吧!
Asp.Net Core使用NLog+Mysql的几个小问题的更多相关文章
- ASP.NET Core使用NLog记录日志到Microsoft Sql Server
在之前的文章中介绍了如何在ASP.NET Core使用NLog,本文为您介绍在ASP.NET Core使用NLog记录到Microsoft Sql Server 1.我们需要添加依赖: NLog.We ...
- asp.net core结合NLog搭建ELK实时日志分析平台
0.整体架构 整体架构目录:ASP.NET Core分布式项目实战-目录 一.介绍ELK 1.说明(此篇ELK采用rpm的方式安装在服务器上)-牛刀小试 承接上一篇文章的内容准备部署ELK来展示asp ...
- Ubuntu Server 16.04下ASP.NET Core Web Api + MySql + Dapper在 Jexus、nginx 下的简单测试
一.环境及工具 1.服务器 VirtualBox5.1.4 安装 Ubuntu Server 16.04 amd64 MySql Ver 14.14 Distrib 5.6.21 Jexus 5.8. ...
- asp.net core 使用NLog记录日志到txt文件
一.使用VisualStudioCode创建一个webapi项目(也可以是mvc等).一个类库(用于封装记录日志方法,当然如果使用依赖注入到控制台项目,就不需要此类库了). 二.在类库中添加NLog. ...
- ASP.NET Core 添加NLog日志支持(VS2015update3&VS2017)
1.创建一个新的ASP.NET Core项目 2.添加项目依赖 NLog.Web.AspNetCore 3.在项目目录下添加nlog.config文件: <?xml version=" ...
- ASP.NET Core之NLog使用
1.新建ASP.NET Core项目 1.1选择项目 1.2选择.Net版本 2. 添加NLog插件 2.1 通过Nuget安装 2.2下载相关的插件 3.修改NLog配置文件 3.1添加NLog配置 ...
- ASP.NET Core使用NLog记录日志
1.根目录新建nlog.config配置文件 <?xml version="1.0"?> <nlog xmlns="http://www.nlog-pr ...
- asp.net core项目 Nlog直接写入集群ElasticSearch的配置方法
1.NuGet 项目引用 NLog.Web.AspNetCore NLog.Targets.ElasticSearch 2.nlog.config配置文件: <?xml version=&quo ...
- asp.net core 使用 NLog日志
NLog是一个配置灵活的日志记录类库,拥有输出日志到文件.存储入库.发送到udp地址的高级功能 1 添加 nlog nuget包 Nlog和NLog.Web.AspNetCore 安装完成后 2 ...
随机推荐
- #4 Python面向对象(三)
前言 前两节讲解了Python面向对象的思想和Python类中各种变量的含义以及区别.肯定有小伙伴会问,类初始化时是否可以传入参数?如果有多个类中含有共同的函数方法,是否可以重复利用?本节就带着这些问 ...
- VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——SliderView控件的使用方式
SliderView控件 一. 样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个SliderView控件到窗体界面上 ...
- C#程序员知识体系
[https://blog.csdn.net/zj735539703/article/details/50409476] 基础部分 C# 基础语法 OOP的概念,面向对象的理解 继承 封装 多态 AS ...
- WPF 文本框设置了阴影效果后,因左右的transform变化引发的拉伸渲染问题
背景 最近遇到一个动画执行时,文本位置变化的问题.如下图: 如果你仔细看的话,当星星变小时,文本往下降了几个像素. 貌似有点莫名其妙,因为控件之间并不在同一个Panel布局控件中,不存在高度限制变化引 ...
- 【学习笔记】tensorflow文件读取
目录 文件读取 文件队列构造 文件阅读器 文件内容解码器 开启线程操作 管道读端批处理 CSV文件读取案例 先看下文件读取以及读取数据处理成张量结果的过程: 一般数据文件格式有文本.excel和图片数 ...
- Vue中父组件传子组件
父组件代码: <template> <section :class="menuMode === 'vertical' ? 'vertical-sub-nav' : 'sub ...
- Dvna for Owasp top 10 2017
简介: DVNA(Damn Vulnerable Node Application),它是一款由Node.js打造的知名WEB漏洞测试平台,或许有些朋友已经使用过.它是用来给使用Node的WEB开发人 ...
- 谷歌AI涉足艺术、太空、外科手术,再强调AI七原则
谷歌AI涉足艺术.太空.外科手术,再强调AI七原则 https://mp.weixin.qq.com/s/MJG_SvKCEBKRvL3IWpL0bA 9月18日上午,Google在上海的2018世界 ...
- opencv3.2.0图像处理之高斯滤波GaussianBlur API函数
/*高斯滤波:GaussianBlur函数 函数原型: void GaussianBlur( InputArray src, OutputArray dst, Size ksize, double s ...
- openlayer3相关扩展
1 ol3扩展 http://viglino.github.io/ol-ext/ ,里面包含编辑-选择控件,字体,动画,canvas绘制等等实例 2 ol3空间拓扑关系库jsts,有jst衍生过来 h ...