asp.net core 2.1 增加Nlog日志到sql server数据库
一、增加引用
<PackageReference Include="NLog.Extensions.Logging" Version="1.2.1" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.6.0" />
二、配置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"
- autoReload="true"
- internalLogLevel="Warn"
- internalLogFile="Logs/internal-nlog.txt">
- <!-- define various log targets -->
- <targets>
- <!-- write logs to file -->
- <target xsi:type="File" name="allfile" fileName="Logs/${date:format=yyyyMM}/nlog-all-${shortdate}.log"
- layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger} ${newline}${message} ${exception} ${newline}" />
- <target xsi:type="File" name="ownFile-web" fileName="Logs/${date:format=yyyyMM}/nlog-own-${shortdate}.log"
- layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger} ${newline}${message} ${exception} ${newline} --- |url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
- <target xsi:type="Null" name="blackhole" />
- <target xsi:type="Database" name="database">
- <connectionString>${var:connectionString}</connectionString>
- <commandText>
- insert into syslog (levels,operatingtime,operatingaddress,userid,logger,requesturl,referrerurl,action,message,exception)
- values (@levels,@operatingtime,@operatingaddress,@userid,@logger,@requesturl,@referrerurl,@action,@message,@exception);
- </commandText>
- <parameter name="@levels" layout="${level}" />
- <parameter name="@operatingTime" layout="${date}" />
- <parameter name="@operatingaddress" layout="${aspnet-Request-IP}" />
- <parameter name="@userid" layout="1" />
- <parameter name="@logger" layout="${logger}" />
- <parameter name="@requesturl" layout="${aspnet-request-url}" />
- <parameter name="@referrerurl" layout="${aspnet-request}" />
- <parameter name="@action" layout="${aspnet-mvc-action}" />
- <parameter name="@message" layout="${message}" />
- <parameter name="@exception" layout="${exception:tostring}" />
- </target>
- </targets>
- <rules>
- <!--All logs, including from Microsoft-->
- <!--minlevel 改为Trace 跟踪全部 Error 只捕获异常-->
- <logger name="*" minlevel="Error" writeTo="allfile" />
- <!--Skip Microsoft logs and so log only own logs-->
- <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
- <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
- <logger name="*" minlevel="Trace" writeTo="database" />
- </rules>
- </nlog>
三、在代码中加入Nlog
1、program.cs 中
- public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
- WebHost.CreateDefaultBuilder(args)
- .UseStartup<Startup>()
- .UseNLog(); //加入nlog日志
2、Startup.cs 中
- public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
- {
- //增加日志记录
- //loggerFactory.AddNLog(); 这个已在program 中加过了,在这里写的话是无法获取 请求地址等信息的
- //env.ConfigureNLog("nlog.config");
- NLog.LogManager.LoadConfiguration("config/nlog.config").GetCurrentClassLogger();
- NLog.LogManager.Configuration.Variables["connectionString"] = Configuration.GetConnectionString("DefaultConnection");
3、要写入日志的 Controller 中
- public class AccountController : Controller
- {
- private readonly ILogger<AccountController> _logger;
- private ApplicationConfiguration _config;
- private readonly SysUserService _service;
- public AccountController(SysUserService service, IOptions<ApplicationConfiguration> option, ILogger<AccountController> logger)
- {
- _logger = logger;
- _service = service;
}
在需要写的位置:
- _logger.LogInformation("{userName} 登录系统。登录地址:{ip}", model.Account, "192.168.1.1");
完成。
asp.net core 2.1 增加Nlog日志到sql server数据库的更多相关文章
- ASP.NET Core使用Elasticsearch记录NLog日志
ASP.NET Core使用Elasticsearch记录NLog日志 1.新建一个 ASP.NET Core项目 2.安装Nuge包 运行:Install-Package NLog.Web.AspN ...
- EF Core中,通过实体类向SQL Server数据库表中插入数据后,实体对象是如何得到数据库表中的默认值的
我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF ...
- .net Core 学习笔记(增加Nlog日志)
https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2 (日志下载) https://github.com ...
- TransactionScope事务处理方法介绍及.NET Core中的注意事项 SQL Server数据库漏洞评估了解一下 预热ASP.NET MVC 的VIEW [AUTOMAPPER]反射自动注册AUTOMAPPER PROFILE
TransactionScope事务处理方法介绍及.NET Core中的注意事项 作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10170712.ht ...
- 读取iis日志到sql server
using Fasterflect; using System; using System.Collections.Generic; using System.Data.SqlClient; usin ...
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
EF Core使用SQL调用返回其他类型的查询 假设你想要 SQL 本身编写,而不使用 LINQ. 需要运行 SQL 查询中返回实体对象之外的内容. 在 EF Core 中,执行该操作的另一种方法 ...
- [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件
本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ...
- ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB
一.前言 在项目开发中,日志系统是系统的一个重要组成模块,通过在程序中记录运行日志.错误日志,可以让我们对于系统的运行情况做到很好的掌控.同时,收集日志不仅仅可以用于诊断排查错误,由于日志同样也是大量 ...
随机推荐
- Xeon Phi 编程备忘
▶ 闲鱼的 Xeon Phi 3120A 配办公室的新 Xeon 服务器,记录一下环境安装过程. ● 原本尝试搭 Ubuntu 服务器,参考[https://software.intel.com/en ...
- Python--001
C 和 Python.Java.C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处 ...
- PCI Simple Communications Controller
PCI Simple Communications Controller Intel Management Engine Interface (MEI)
- 使用Eclipse对FFmpeg进行调试
在研究代码的过程中,调试运行是一种非常有效的方法.我们常用的Visual Studio建立的工程可以很方便地对程序进行调试运行.但是对于FFMpeg这样的工程,想要进行单步调试就没这么容易了.如果一定 ...
- uiview animation 卡一下
原因:有个下载图片的地方在主线程执行,导致动画卡一下.
- tensorflow笔记之反向传播时用到的几种方法
1. 梯度下降, tf.train.GradientDescentOptimizer(0.05),梯度下降的问题在与不一定能获得全局最优解,并且因为要在所有数据上最小化损失,所以损失函数是在所有训练数 ...
- JAVA发送HttpClient请求及接收请求结果过程
1.写一个HttpRequestUtils工具类,包括post请求和get请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
- delphi 颜色转换函数总结
unit UColor; interface uses windows, sysutils, classes, graphics; function HexToInt(Hexa: String): L ...
- JAVA 打印流与转换流
转换流主要有两个 InputStreamReader 和 OutputStreamWriter 1. InputStreamReader 主要是将字节流输入流转换成字符输入流 2. OutputStr ...
- hadoop发行版本
Azure HDInsight Azure HDInsight is Microsoft's distribution of Hadoop. The Azure HDInsight ecosystem ...