nlog-config.xml 配置文件:

  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="false"
  5. internalLogLevel="info"
  6. internalLogFile="Logs/SysNlog.log">
  7.  
  8. <extensions>
  9. <add assembly="NLog.Web.AspNetCore"/>
  10. </extensions>
  11.  
  12. <targets>
  13. <target name="db"
  14. xsi:type="Database"
  15. connectionString="${var:NLOG_CONNECTION_STRING}"
  16. commandType="StoredProcedure"
  17. commandText="[dbo].[SP_InsertLog]">
  18. <parameter name="@traceId" layout="${aspnet-TraceIdentifier}" />
  19. <parameter name="@eventId" layout="${event-properties:EventId}" />
  20. <parameter name="@user" layout="${aspnet-user-identity}" />
  21. <parameter name="@application" layout="APP_WEB" />
  22. <parameter name="@level" layout="${level}" />
  23. <parameter name="@category" layout="${logger}" />
  24. <parameter name="@message" layout="${message}" />
  25. <parameter name="@properties" layout="${all-event-properties:separator=|}" />
  26. <parameter name="@exception" layout="${exception:tostring}" />
  27. <parameter name="@clientIP" layout="${aspnet-request-ip}" />
  28. <parameter name="@addTime" layout="${date:universalTime=True}" />
  29. </target>
  30. </targets>
  31.  
  32. <rules>
  33. <logger name="*" minlevel="Trace" writeTo="db" />
  34. </rules>
  35. </nlog>

appsettings.json配置

  1. {
  2. "ConnectionStrings": {
  3. "testDatabase": "Data Source=(local); Initial Catalog=TestDB; User Id=sa; Password=Sa; MultipleActiveResultSets=True;",
  4. "LogDatabase": "Data Source=(local); Initial Catalog=TestDB_Log; User Id=sa; Password=Sa; MultipleActiveResultSets=True;"
  5. },
  6. "Encoding": "GBK",
  7. "Logging": {
  8. "IncludeScopes": false,
  9. "LogLevel": {
  10. "Microsoft.AspNetCore.Mvc": "Warning",
  11. "Microsoft.EntityFrameworkCore": "Warning",
  12. "Default": "Information"
  13. }
  14. }
  15. }

STARTUP.CS

  1. // NLog 数据库配置
  2. NLog.LogManager.Configuration.FindTargetByName<DatabaseTarget>("db").ConnectionString = Configuration.GetConnectionString("LogDatabase");

存储:

  1.  
  2. create procedure [dbo].[SP_InsertLog](
  3. @traceId nvarchar(32),
  4. @eventId int,
  5. @user nvarchar(450),
  6. @application nvarchar(450),
  7. @level nvarchar(8),
  8. @category nvarchar(450),
  9. @message nvarchar(max),
  10. @properties nvarchar(max),
  11. @exception nvarchar(max),
  12. @clientIP nvarchar(450),
  13. @addTime datetime
  14. )
  15. as
  16. begin
  17. insert into dbo.[LogTable]([TraceId],[EventId], [User], [Application], [Level], [Category], [Message], [Properties], [Exception], [ClientIP], [AddTime])
  18. values(@traceId, @eventId, @user, @application, @level, @category, @message, @properties, @exception, @clientIP, @addTime);
  19. end

Program.cs

  1. public class Program
  2. {
  3. public static void Main(string[] args)
  4. {
  5. var logger = NLogBuilder.ConfigureNLog("Log/nlog-config.xml").GetCurrentClassLogger();
  6. try
  7. {
  8. CreateWebHostBuilder(args).Build().Run();
  9. }
  10. catch (Exception ex)
  11. {
  12. logger.Error(ex, "异常信息");
  13. throw;
  14. }
  15. finally { NLog.LogManager.Shutdown(); }
  16. }
  17.  
  18. public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  19. WebHost.CreateDefaultBuilder(args)
  20. .UseStartup<Startup>()
  21. .UseNLog();
  22. }

.NET Core+NLog+存储配置 日志存入到数据库的更多相关文章

  1. Asp.Net Core NLog 将日志输出到数据库以及添加LayoutRenderer的支持

    在这之前打算用Apache的Log4Net,但是发现其AdoNetAppender方法已经不存在了,无法使用配置文件直接输出到数据库了,因此我便改用了NLog框架. 一.对项目添加NLog 通过Nug ...

  2. Nlog打印日志到Influxdb数据库

    1.安装和使用Influxdb 安装部分网上资料比较多,也讲的比较详细,请自行百度. 下面大概讲下InfluxDB的写入和读取数据的方法. 我使用了InfluxData.Net包. 工具->Nu ...

  3. asp.net core NLog将日志写到文件

    1.安装Nlog包 Install-Package NLog.Extensions.Logging -Pre 2.在项目添加nlog.config文件 2.1.nlog.config <?xml ...

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

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

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

    NET Core 实战:使用 NLog 将日志信息记录到 MongoDB https://www.cnblogs.com/danvic712/p/10226557.html ASP.NET Core ...

  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. Net Core 2.1 日志记录框架NLog+Mysql配置

    NLog是什么? 这里还是简单介绍一下吧,为了让小白也知道.NLog是一个灵活的免费日志记录平台,适用于各种.NET平台,包括.NET Core.NLog可以通过简单地配置就可以可以很方便的写入多个日 ...

  8. 使用NLog把日志写入数据库并按天自动分表

    前言 最近用Asp.net Core开发程序的时候 因为时间的关系,就没有过多的去关注日志方面的功能 都是直接用系统的ILogger先记录着,然后看日志的时候就先在命令行看日志 在开发阶段没有什么问题 ...

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

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

随机推荐

  1. ord() expected string of length 1, but int found

    源代码是这样: s=b'^SdVkT#S ]`Y\\!^)\x8f\x80ism' key='' for i in s:     i=ord(i)-16     key+=chr(i^32) prin ...

  2. 记录Ubuntu & Windows下安装PyV8

    https://blog.csdn.net/hanshileiai/article/details/51628173

  3. Java内存空间的分配及回收

    Java中内存分为: 栈:存放简单数据类型变量(值和变量名都存在栈中),存放引用数据类型的变量名以及它所指向的实例的首地址. 堆:存放引用数据类型的实例. Java的垃圾回收 由一个后台线程gc进行垃 ...

  4. ASP.NET Core 新建线程中使用依赖注入的问题

    问题来自博问的一个提问 .net core 多线程数据保存的时候DbContext被释放 . TCPService 通过构造函数注入了 ContentService , ContentService ...

  5. Windows下更改MySQL 数据库文件存放位置

    更改默认的mysql数据库目录 将 C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data 改 ...

  6. YOLO系列:YOLO v1深度解析

    声明一点,我是工程应用人员,此文章仅适合算法应用工程师. 1.首先 先看一下YOLO的整体结构: 2.其次 看一下YOLO的工作过程: (1) 将原图划分为SxS的网格.如果一个目标的中心落入某个格子 ...

  7. UVA 277 Puzzle

    题意:输入5x5的字符串,输入操作,要求输出完成操作后的字符串. 注意:①输入的操作执行可能会越界,如果越界则按题目要求输出不能完成的语句. ②除了最后一次的输出外,其他输出均要在后面空一行. ③操作 ...

  8. Python流程控制if判断以及whlie循环

    一.基本运算符补充 1. 算术运算          print(10 / 3)          print(10 // 3)          print(10 ** 2) 2. 赋值运算    ...

  9. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)

    新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...

  10. 第二章 STM32的结构和组成

    2.5 芯片里面有什么 STM32F103采用的是Cortex-M3内核,内核即CPU,由ARM公司设计. ARM公司并不生产芯片,而是出售其芯片技术授权. 芯片生产厂商(SOC)如ST.TI.Fre ...