一、增加引用

<PackageReference Include="NLog.Extensions.Logging" Version="1.2.1" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.6.0" />

二、配置nlog.config

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. autoReload="true"
  5. internalLogLevel="Warn"
  6. internalLogFile="Logs/internal-nlog.txt">
  7.  
  8. <!-- define various log targets -->
  9. <targets>
  10. <!-- write logs to file -->
  11. <target xsi:type="File" name="allfile" fileName="Logs/${date:format=yyyyMM}/nlog-all-${shortdate}.log"
  12. layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger} ${newline}${message} ${exception} ${newline}" />
  13.  
  14. <target xsi:type="File" name="ownFile-web" fileName="Logs/${date:format=yyyyMM}/nlog-own-${shortdate}.log"
  15. layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger} ${newline}${message} ${exception} ${newline} --- |url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
  16.  
  17. <target xsi:type="Null" name="blackhole" />
  18. <target xsi:type="Database" name="database">
  19. <connectionString>${var:connectionString}</connectionString>
  20. <commandText>
  21. insert into syslog (levels,operatingtime,operatingaddress,userid,logger,requesturl,referrerurl,action,message,exception)
  22. values (@levels,@operatingtime,@operatingaddress,@userid,@logger,@requesturl,@referrerurl,@action,@message,@exception);
  23. </commandText>
  24. <parameter name="@levels" layout="${level}" />
  25. <parameter name="@operatingTime" layout="${date}" />
  26. <parameter name="@operatingaddress" layout="${aspnet-Request-IP}" />
  27. <parameter name="@userid" layout="1" />
  28. <parameter name="@logger" layout="${logger}" />
  29. <parameter name="@requesturl" layout="${aspnet-request-url}" />
  30. <parameter name="@referrerurl" layout="${aspnet-request}" />
  31. <parameter name="@action" layout="${aspnet-mvc-action}" />
  32. <parameter name="@message" layout="${message}" />
  33. <parameter name="@exception" layout="${exception:tostring}" />
  34. </target>
  35. </targets>
  36.  
  37. <rules>
  38. <!--All logs, including from Microsoft-->
  39. <!--minlevel 改为Trace 跟踪全部 Error 只捕获异常-->
  40. <logger name="*" minlevel="Error" writeTo="allfile" />
  41.  
  42. <!--Skip Microsoft logs and so log only own logs-->
  43. <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
  44. <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
  45. <logger name="*" minlevel="Trace" writeTo="database" />
  46. </rules>
  47. </nlog>

三、在代码中加入Nlog

1、program.cs 中

  1. public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  2. WebHost.CreateDefaultBuilder(args)
  3. .UseStartup<Startup>()
  4. .UseNLog(); //加入nlog日志

2、Startup.cs 中

  1. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  2. {
  3. //增加日志记录
  4. //loggerFactory.AddNLog(); 这个已在program 中加过了,在这里写的话是无法获取 请求地址等信息的
  5. //env.ConfigureNLog("nlog.config");
  6.  
  7. NLog.LogManager.LoadConfiguration("config/nlog.config").GetCurrentClassLogger();
  8. NLog.LogManager.Configuration.Variables["connectionString"] = Configuration.GetConnectionString("DefaultConnection");

3、要写入日志的 Controller 中

  1. public class AccountController : Controller
  2. {
  3. private readonly ILogger<AccountController> _logger;
  4. private ApplicationConfiguration _config;
  5. private readonly SysUserService _service;
  6.  
  7. public AccountController(SysUserService service, IOptions<ApplicationConfiguration> option, ILogger<AccountController> logger)
  8. {
  9. _logger = logger;
  10. _service = service;
         }

在需要写的位置:

  1. _logger.LogInformation("{userName} 登录系统。登录地址:{ip}", model.Account, "192.168.1.1");

完成。

asp.net core 2.1 增加Nlog日志到sql server数据库的更多相关文章

  1. ASP.NET Core使用Elasticsearch记录NLog日志

    ASP.NET Core使用Elasticsearch记录NLog日志 1.新建一个 ASP.NET Core项目 2.安装Nuge包 运行:Install-Package NLog.Web.AspN ...

  2. EF Core中,通过实体类向SQL Server数据库表中插入数据后,实体对象是如何得到数据库表中的默认值的

    我们使用EF Core的实体类向SQL Server数据库表中插入数据后,如果数据库表中有自增列或默认值列,那么EF Core的实体对象也会返回插入到数据库表中的默认值. 下面我们通过例子来展示,EF ...

  3. .net Core 学习笔记(增加Nlog日志)

    https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2  (日志下载) https://github.com ...

  4. TransactionScope事务处理方法介绍及.NET Core中的注意事项 SQL Server数据库漏洞评估了解一下 预热ASP.NET MVC 的VIEW [AUTOMAPPER]反射自动注册AUTOMAPPER PROFILE

    TransactionScope事务处理方法介绍及.NET Core中的注意事项   作者:依乐祝 原文链接:https://www.cnblogs.com/yilezhu/p/10170712.ht ...

  5. 读取iis日志到sql server

    using Fasterflect; using System; using System.Collections.Generic; using System.Data.SqlClient; usin ...

  6. 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 中,执行该操作的另一种方法 ...

  7. [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件

    本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...

  8. ASP.NET Core 开发-Logging 使用NLog 写日志文件

    ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ...

  9. ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB

    一.前言 在项目开发中,日志系统是系统的一个重要组成模块,通过在程序中记录运行日志.错误日志,可以让我们对于系统的运行情况做到很好的掌控.同时,收集日志不仅仅可以用于诊断排查错误,由于日志同样也是大量 ...

随机推荐

  1. Xeon Phi 编程备忘

    ▶ 闲鱼的 Xeon Phi 3120A 配办公室的新 Xeon 服务器,记录一下环境安装过程. ● 原本尝试搭 Ubuntu 服务器,参考[https://software.intel.com/en ...

  2. Python--001

    C 和 Python.Java.C#等 C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作 其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处 ...

  3. PCI Simple Communications Controller

    PCI Simple Communications Controller Intel Management Engine Interface (MEI)

  4. 使用Eclipse对FFmpeg进行调试

    在研究代码的过程中,调试运行是一种非常有效的方法.我们常用的Visual Studio建立的工程可以很方便地对程序进行调试运行.但是对于FFMpeg这样的工程,想要进行单步调试就没这么容易了.如果一定 ...

  5. uiview animation 卡一下

    原因:有个下载图片的地方在主线程执行,导致动画卡一下.

  6. tensorflow笔记之反向传播时用到的几种方法

    1. 梯度下降, tf.train.GradientDescentOptimizer(0.05),梯度下降的问题在与不一定能获得全局最优解,并且因为要在所有数据上最小化损失,所以损失函数是在所有训练数 ...

  7. 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 ...

  8. delphi 颜色转换函数总结

    unit UColor; interface uses windows, sysutils, classes, graphics; function HexToInt(Hexa: String): L ...

  9. JAVA 打印流与转换流

    转换流主要有两个 InputStreamReader 和 OutputStreamWriter 1. InputStreamReader 主要是将字节流输入流转换成字符输入流 2. OutputStr ...

  10. hadoop发行版本

    Azure HDInsight Azure HDInsight is Microsoft's distribution of Hadoop. The Azure HDInsight ecosystem ...