在asp.net core中,配置log4net将记录保存至sqlserver

本文介绍了如何在ASP.NET Core项目中使用log4net将日志记录保存到SQL Server数据库,包括nuget包安装、log4net.config配置、自定义PatternLayoutConverter、数据库表结构设计以及ASP.NET Core的日志服务配置和使用。
摘要由CSDN通过智能技术生成

简单码一下其中一种使用的方式,希望能有一点点帮助。平时懒得码字,如果有错误或遗漏,还望告知。

1.nuget

2. log4net.config 配置文件

其中SQL脚本使用了T-sql语法,实现了可null字段的输入。

该文件设置为copy always

<?xml version="1.0" encoding="utf-8"?>
<log4net debug="false">

  <!-- appender: Define some output appenders,指Log的输出方式(文件,数据库) -->
  <!-- name:自定义名称,type:log4net的命名空间-->

  <appender name="adoNetAppender_SqlServer" type="log4net.Appender.ADONetAppender">
    <!--日志缓存写入条数 设置为0时只要有一条就立刻写到数据库 生产环境可改为10-100写入一次-->
    <bufferSize value="1" />
    <!-- 日志数据库连接类型(此处非常重要,写错会导致无法写入数据库) -->
    <connectionType value="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient, Version=1.0.0.0,Culture=neutral,PublicKeyToken=23ec7fc2d6eaa4a5"/>
    <!--日志数据库连接串-->
    <connectionString value="server=.;database=xxxxxx;uid=sa;pwd=sa" />
    <!--日志数据库脚本-->
    <commandText value="INSERT INTO LogDetails (Establish,Thread,Level,Logger,UserInfoId,HttpMethod,Uri) VALUES (@Establish,@Thread,@Level,@Logger,CASE WHEN @UserInfoId = 'NULL' THEN NULL ELSE @UserInfoId END,@HttpMethod,@Uri)" />

    <!--日志时间 -->
    <parameter>
      <parameterName value="@Establish" />
      <dbType value="DateTime" />
      <layout type="log4net.Layout.RawTimeStampLayout" /&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值