1、配置项目环境

1.1 本文只显示需要修改配置的操作,初次引入log4net环境的请参考上文

1.2 安装mysql-connector-net.msi环境,下载地址。并手动生成数据库日志信息表。

2、配置log4net.config

2.1 修改log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<!-- Mysql日志类 -->
<logger name="logdb">
<level value="ALL" />
<appender-ref ref="AdoNetAppender_Mysql" />
</logger> <!-- Mysql日志附加介质 -->
<appender name="AdoNetAppender_Mysql" type="log4net.Appender.AdoNetAppender">
<!-- 日志信息缓冲区大小,测试时为0,实际部署可适当改为100 -->
<bufferSize value="0" />
<!-- mysql-connector-net版本为6.8.3以上,不需更改数据源 -->
<ConnectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
<!-- 数据库连接字符串 -->
<ConnectionString value="server=localhost;user id=root;password=root;persist security info=True;character set=utf8;database=test;pooling=true;"/>
<!-- 数据库日志插入命令 -->
<commandText value="INSERT INTO loginfo (DateTime,Message,UserId) VALUES (@log_date, @message, @user_id)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<!-- 格式带property为自定义信息 -->
<parameter>
<parameterName value="@user_id" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{UserId}" />
</layout>
</parameter>
</appender>
</log4net>
</configuration>

3、代码使用示例

3.1 修改工具类LogHelper

namespace July.Demo.Win
{
public class LogHelper
{
static readonly log4net.ILog logdb = log4net.LogManager.GetLogger("logdb"); public static void WriteLog(string info)
{
if (logdb.IsInfoEnabled)
{
          //使用线程相关属性设定自定义信息
log4net.ThreadContext.Properties["UserId"] = "U-1001";
logdb.Info(info);
}
}
}
}

4、运行效果

4.1 效果图如下

aaarticlea/png;base64,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" alt="" />

欢迎转载,但请注明出处:http://www.cnblogs.com/julyweb/,谢谢!

(二)使用log4net写入数据库自定义日志的更多相关文章

  1. Log4j(一):Log4j将日志信息写入数据库

    前言 为了监听一些数据的采集等功能,需要随时监听设备的状态,所以需要运行的时候将日志打入到数据库中. 正文 第一步: 首先是jar包,由于我使用的是springboot,所以,在springboot- ...

  2. SQL Server中怎么查看每个数据库的日志大小,以及怎么确定数据库的日志文件,怎么用语句收缩日志文件

    一,找到每个数据库的日志文件大小 SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文 ...

  3. log4net 将日志写入数据库

    asp.net利用log4net写入日志到SqlServer数据库,Log4net是一个开源的错误日志记录项目,易用性强,源自log4j,品质值得信赖. 下面就我的安装部署log4net到MS sql ...

  4. mvc log4net将日志写入数据库失败解决之道——开启内部调试

    项目信息:spring mvc5  EF6 数据库:sql2008r2 log4net版本:1.2.10.0 第一天: 1.思路一:配了半天,一直无法写入数据库,网上搜了一大堆的资料,都没能解决,怀疑 ...

  5. log4net写入日志到sqlserver数据库

    1.添加log4Net配置文件log4net.config 配置文件属性设置为: 配置如下: <?xml version="1.0" encoding="utf-8 ...

  6. log4Net(写入日志文件)

    这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了. 首先去log4net下载. 然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4ne ...

  7. Log4Net写入到数据库配置过程中的一些小问题备忘

    问题1: 在公司进行log4net写入服务器配置的时候,一切正常,但是在家里的机器上,就频繁出现这个问题: SQL Server 2008 报错:已成功与服务器建立连接,但是在登录前的握手期间发生错误 ...

  8. 怎样借助log4j把日志写入数据库中

            log4j是一个优秀的开源日志记录项目.我们不仅能够对输出的日志的格式自定义,还能够自定义日志输出的目的地,比方:屏幕.文本文件,数据 库,甚至能通过socket输出.本节使用MySQ ...

  9. C# 基础 - 日志捕获二使用 log4net

    引入 log4net.dll 项目->添加->新建项->应用程序配置文件,命名为 log4net.config,并把属性的复制到输出目录设置为 如果较新则复制,后续客户端需要读取在 ...

随机推荐

  1. 函数参数选项的处理getopt getopt_long getopt_long_only

    转载:http://blog.chinaunix.net/uid-20321537-id-1966849.html   在头文件中int getopt(int argc,char *argv[], c ...

  2. javascript组件开发

    最近忙于重构项目,今天周末把在重构中的一些思想记记: 一.javascript的组件开发:基类的封装 由于这次重构项目需要对各种组件进行封装,并且这些组件的实现方式都差不多,所以想到对组件封装一个ba ...

  3. 剑指Offer02 替换空格

    /************************************************************************* > File Name: 02_Replac ...

  4. HttpContext.Current.User.Identity.IsAuthenticated

    HttpContext.Current.User.Identity.IsAuthenticated=false; HttpContext.Current.User.Identity.Name==&qu ...

  5. Sublime Text—自带快捷键介绍

    前言: Sublime Text是个小巧便捷的编辑器,除了众多好用的插件外,还有它自带的快捷键,打代码事半功倍,不会用的赶紧看看吧! 其实菜单上都有,看不懂可以汉化,Key Bindings-Defa ...

  6. shell语法基础

    一.变量 1.linux大小写敏感,变量取名要注意大小写.可以通过变量名前面加$来访问变量的内容.可以通过使用read命令来将用户输入的值赋给一个变量. 2.给变量赋值时,如果字符串中包含空格,就必须 ...

  7. 获取一年时间的sql

    select a.day, to_char(a.day, 'day') as dd, 1 as flag,to_char(a.day,'YYYY-MM-DD') from ( SELECT TO_DA ...

  8. Cocos移植到Android的一些问题-中文乱码问题

    Android平台版本和设备碎片化很严重,因此从Win32平台移植到Android平台会有很多问题,下面是我们归纳的从Win32平台移植到Android平台遇到的一些问题.在Android平台中文乱码 ...

  9. WPF串口通信数据采集

    使用WPF做的串口数据采集并动态显示在表格中的小程序,程序运行之后,自动打开串口,从COM1接收数据,并把接收到的数据进行处理显示在DataGrid中. 串口通信程序是从另外一个串口助手中扒的,去掉了 ...

  10. .Net的基础概念

    1,参数传递. 默认都是按值传递(无论引用还是值类型),也就意味着传递参数的一个副本给方法.之后在方法体内对参数的更改,对原始参数没有影响. 使用ref/out可以按引用传递,直接影响原始参数变量.两 ...