简单码一下其中一种使用的方式,希望能有一点点帮助。平时懒得码字,如果有错误或遗漏,还望告知。
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" /&