log4net写入mysql完整例子

1,创建表log

CREATE TABLE `log` (

`id`  int(11) NOT NULL AUTO_INCREMENT ,

`log_datetime`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,

`log_thread`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

`log_level`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

`log_logger`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,

`log_message`  text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,

PRIMARY KEY (`id`)

)

ENGINE=InnoDB

DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

AUTO_INCREMENT=12

ROW_FORMAT=DYNAMIC

;

2,添加配置文件log4net.config

将下面内存复制到txt中,txt重命名为log4net.config,放在网站或程序根目录下。

<?xml version="1.0"?>

<configuration>

<configSections>

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

</configSections>

<log4net>

<appender name="stdout" type="log4net.Appender.ConsoleAppender">

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="[%d %l] %m%n" />

</layout>

</appender>

<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">

<param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />

<param name="ConnectionString" value="Server=192.168.16.247;port=3306;User ID=root;password=Juanpi123;database=spider;charset=utf8;Allow User Variables=True"/>

<param name="CommandText" value="insert into log(log_datetime,log_thread,log_level,log_logger,log_message) values(@log_datetime, @log_thread , @log_level, @log_logger, @log_message)" />

<param name="Parameter">

<param name="ParameterName" value="@log_datetime" />

<param name="DbType" value="DateTime" />

<param name="Layout" type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%d{yyyy‘-‘MM‘-‘dd HH‘:‘mm‘:‘ss‘.‘fff}" />

</param>

</param>

<param name="Parameter">

<param name="ParameterName" value="@log_thread" />

<param name="DbType" value="String" />

<param name="Size" value="255" />

<param name="Layout" type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%t" />

</param>

</param>

<param name="Parameter">

<param name="ParameterName" value="@log_level" />

<param name="DbType" value="String" />

<param name="Size" value="50" />

<param name="Layout" type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%p" />

</param>

</param>

<param name="Parameter">

<param name="ParameterName" value="@log_logger" />

<param name="DbType" value="String" />

<param name="Size" value="255" />

<param name="Layout" type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%c" />

</param>

</param>

<param name="Parameter">

<param name="ParameterName" value="@log_message" />

<param name="DbType" value="String" />

<param name="Size" value="10000" />

<param name="Layout" type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%m" />

</param>

</param>

</appender>

<appender name="file" type="log4net.Appender.RollingFileAppender">

<param name="File" value="log\\log" />

<param name="AppendToFile" value="true" />

<param name="RollingStyle" value="Date" />

<param name="DatePattern" value="yyyy-MM-dd" />

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="[%d %l] %m%n" />

</layout>

</appender>

<root>

<level value="ALL" />

<appender-ref ref="ADONetAppender" />

</root>

<logger name="*">

<level value="ALL" />

<appender-ref ref="ADONetAppender" />

</logger>

</log4net>

</configuration>

3,添加代码

新建一个类Log4net,代码如下:

public class Log4net

{

/// <summary>

/// 配置文件log4net.config是否加载

/// </summary>

public static readonly bool IsConfigLoaded = false;

public static string ConfigFileName = "log4net.config";

private static log4net.ILog logger = LogManager.GetLogger(typeof (Log4net));

static Log4net()

{

string path = System.Web.HttpContext.Current.Server.MapPath(ConfigFileName);

if (File.Exists(path))

{

log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(path));

IsConfigLoaded = true;

}

}

public static void Error(string message)

{

if (IsConfigLoaded)

{

logger.ErrorFormat(message);

}

}

public static void Error(Type type,string message)

{

if (IsConfigLoaded)

{

log4net.ILog logger = LogManager.GetLogger(type);

logger.ErrorFormat(message);

}

}

}

4,添加动态库的引用。

(1)mysql.data.dll,用来连接mysql数据库的。

(2)log4net.dll,功能库。

可以从官网下载dll和源码。

http://logging.apache.org/log4net/download_log4net.cgi

5,使用

(1) Log4net.Error(string.Format("{0} 详细信息为:{1}", ex.Message, ex.ToString()));

(2)Log4net.Error(typeof(HomeController), string.Format("{0} 详细信息为:{1}", ex.Message, ex.ToString()));

时间: 2024-08-28 02:51:34

log4net写入mysql完整例子的相关文章

关于log4net日志写入mysql数据库记录

网上关于log4net日志写入mysql数据库的博客感觉比较少,所以这边搞定之后先过来记录一下. 首先新建个项目,我命名是log4netDemo,然后需要引入两个dll,一个是mysql.dll,一个是log4net.dll.可以通过NuGet安装这两个dll,如下图 我这边mysql和log4net的版本分别是6.10.8和2.0.8,当然mysql更高版本的也是可以的. 然后在项目中新建一个log4net.config的配置文件,配置全文如下: <?xml version="1.0&q

python测试mysql写入性能完整实例

这篇文章主要介绍了python测试mysql写入性能完整实例,具有一定借鉴价值,需要的朋友可以参考下 本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: (1) 阿里云服务器centos 6.5 (2) 2G内存 (3) 普通硬盘 (4) mysql 5.1.73 数据库存储引擎为 InnoDB (5) python 2.7 (6) 客户端模块 mysql.connector 测试方法: (1) 普通写入 (2) 批量写入 (3) 事务加批量写入

Spring Batch示例: 读取CSV文件并写入MySQL数据库

Spring Batch示例: 读取CSV文件并写入MySQL数据库 GitHub版本: https://github.com/kimmking/SpringBatchReferenceCN/blob/master/01_introduction/Spring_Batch_MySQL.md 原文链接: Reading and writing CVS files with Spring Batch and MySQL 原文作者: Steven Haines - 技术架构师 下载本教程的源代码: S

使用log4net连接Mysql数据库配置

log4net配置: //Author:GaoBingBing [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 必备的组件: 1.log4net.dll 2.MySql.Data.dll log4net.config: <?xml version="1.0" encoding="utf-8" ?> <c

asp.net利用log4net写入日志到SqlServer数据库

asp.net利用log4net写入日志到SqlServer数据库 作者: Kein  来源: 博客园  发布时间: 2010-10-14 07:19  阅读: 6427 次  推荐: 6   原文链接   [收藏] 摘要:Log4net是一个开源的错误日志记录项目,asp.net利用log4net写入日志到SqlServer数据库.下面就我的安装部署log4net到MS sql server的经验与大家分享. asp.net利用log4net写入日志到SqlServer数据库,Log4net是

Spark:将DataFrame写入Mysql

Spark将DataFrame进行一些列处理后,需要将之写入mysql,下面是实现过程 1.mysql的信息 mysql的信息我保存在了外部的配置文件,这样方便后续的配置添加. 1 //配置文件示例: 2 [[email protected] tmp_lillcol]$ cat job.properties 3 #mysql数据库配置 4 mysql.driver=com.mysql.jdbc.Driver 5 mysql.url=jdbc:mysql://127.0.0.1:3306/data

python执行shell获取硬件参数写入mysql

最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python执行shell获取这些信息,python执行shell脚本有以下三种方法: 1. os.system() os.system('ls')#返回结果0或者1,不能得到命令的输出 2. os.popen() output = os.popen('ls') print output.read()#打印出的

第一篇博客(python爬取小故事网并写入mysql)

前言: 这是一篇来自整理EVERNOTE的笔记所产生的小博客,实现功能主要为用广度优先算法爬取小故事网,爬满100个链接并写入mysql,虽然CS作为双学位已经修习了三年多了,但不仅理论知识一般,动手能力也很差,在学习的空余时间前前后后DEBUG了很多次,下面给出源代码及所遇到的BUG. 本博客参照代码及PROJECT来源:http://kexue.fm/archives/4385/ 源代码: 1 import requests as rq 2 import re 3 import codecs

C#调用存储过程简单完整例子

CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE [email protected] SET  @[email protected]@ROWCOUNTENDGO------------------------------------------------------------------------------------------存储过程调用如下:-