nlog-config.xml 配置文件:

<?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="false"
internalLogLevel="info"
internalLogFile="Logs/SysNlog.log"> <extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions> <targets>
<target name="db"
xsi:type="Database"
connectionString="${var:NLOG_CONNECTION_STRING}"
commandType="StoredProcedure"
commandText="[dbo].[SP_InsertLog]">
<parameter name="@traceId" layout="${aspnet-TraceIdentifier}" />
<parameter name="@eventId" layout="${event-properties:EventId}" />
<parameter name="@user" layout="${aspnet-user-identity}" />
<parameter name="@application" layout="APP_WEB" />
<parameter name="@level" layout="${level}" />
<parameter name="@category" layout="${logger}" />
<parameter name="@message" layout="${message}" />
<parameter name="@properties" layout="${all-event-properties:separator=|}" />
<parameter name="@exception" layout="${exception:tostring}" />
<parameter name="@clientIP" layout="${aspnet-request-ip}" />
<parameter name="@addTime" layout="${date:universalTime=True}" />
</target>
</targets> <rules>
<logger name="*" minlevel="Trace" writeTo="db" />
</rules>
</nlog>

appsettings.json配置

{
"ConnectionStrings": {
"testDatabase": "Data Source=(local); Initial Catalog=TestDB; User Id=sa; Password=Sa; MultipleActiveResultSets=True;",
"LogDatabase": "Data Source=(local); Initial Catalog=TestDB_Log; User Id=sa; Password=Sa; MultipleActiveResultSets=True;"
},
"Encoding": "GBK",
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Microsoft.AspNetCore.Mvc": "Warning",
"Microsoft.EntityFrameworkCore": "Warning",
"Default": "Information"
}
}
}

STARTUP.CS

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

存储:


create procedure [dbo].[SP_InsertLog](
@traceId nvarchar(32),
@eventId int,
@user nvarchar(450),
@application nvarchar(450),
@level nvarchar(8),
@category nvarchar(450),
@message nvarchar(max),
@properties nvarchar(max),
@exception nvarchar(max),
@clientIP nvarchar(450),
@addTime datetime
)
as
begin
insert into dbo.[LogTable]([TraceId],[EventId], [User], [Application], [Level], [Category], [Message], [Properties], [Exception], [ClientIP], [AddTime])
values(@traceId, @eventId, @user, @application, @level, @category, @message, @properties, @exception, @clientIP, @addTime);
end

Program.cs

 public class Program
{
public static void Main(string[] args)
{
var logger = NLogBuilder.ConfigureNLog("Log/nlog-config.xml").GetCurrentClassLogger();
try
{
CreateWebHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
logger.Error(ex, "异常信息");
throw;
}
finally { NLog.LogManager.Shutdown(); }
} public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseNLog();
}

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

    1. LOOP - END LOOP - EXIT declare v_rlt ):; begin v_rlt:; loop dbms_output.put_line('loop'||v_rlt); ...

  2. 英语口语练习系列-C30-生日-年历的周日和月份-如果白昼落进

    词汇-生日-birthday 生日庆祝 birthday celebration birth noun UK /bɜːθ/ US /bɝːθ/ the time when a baby or youn ...

  3. php 单例模式和工厂模式

    单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的.所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记为priva ...

  4. 潭州课堂25班:Ph201805201 django 项目 第二十课 数据库分析设计图 (课堂笔记)

    https://www.dbdesigner.net/

  5. 读《31天学会CRM项目开发》记录2 - 企业信息管理系统

    在信息技术的快速推动下,企业如果依然利用传统的管理方式,以人为主,那效率便会大打折扣.在此背景下,企业信息化系统得 到了高速发展.如我们常见的ERP系统.MES系统,都是提高公司运行效率,降低运营以及 ...

  6. [POJ3614]Sunscreen (贪心)

    题意 (依然来自洛谷) 有C个奶牛去晒太阳 (1 <=C <= 2500),每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值,太大就晒伤了,太小奶牛没感觉. 而刚开始的阳光的强度非常 ...

  7. Linux 压缩解压缩

    先直接给出各种解压缩命令 .tar 压缩:tar cvf FileName.tar FileName 解压:tar xvf FileName.tar ------------------------- ...

  8. Sublime_正则查找替换

    在sublime编辑器中使用正则表达式对内容进行查找和替换: (1)Find——Replace... (2)出现下图界面 注意:点击左边第一个按钮,开启正则表达式功能. (3) (4)点击Replac ...

  9. 【组合&取补集】数三角形 @CQOI2014/BZOJ3505/upcexam3843

    http://exam.upc.edu.cn/problem.php?id=3843&csrf=8oK86t2oHSgi3Q4SX3qOJGeENe6pfXri 时间限制: 1 Sec 内存限 ...

  10. 如何修改IE浏览器的User-Agent用户代理字符串信息

    每款浏览器都有一个专属的 User-Agent 字符串信息, 通过 User-Agent 网站可以检测用户所使用的浏览器版本.某些网站为了让用户获得更好的浏览体验,通过检测用户的浏览器版本,以确认用户 ...