1.log4net官网配置相关,创建数据库

http://logging.apache.org/log4net/release/config-examples.html

CREATE TABLE [dbo].[tbl_LogInfo](
[ID] [int] IDENTITY(1,1) NOT NULL,
[LogTime] [datetime] NOT NULL,
[Thread] [nvarchar](max) NOT NULL,
[LogLevel] [nvarchar](max) NULL,
[Logger] [nvarchar](max) NULL,
[Message] [nvarchar](max) NULL,
[Exception] [nvarchar](max) NULL)

  配置项

 <configuration>
<log4net>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="10"/>
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=2sdfg57345c5619dsfsdf"/>
<commandText value="INSERT INTO tbl_LogInfo ([LogTime],[Thread],[LogLevel],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"/>
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<parameter>
<parameterName value="@thread"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread"/>
</layout>
</parameter>
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level"/>
</layout>
</parameter>
<parameter>
<parameterName value="@logger"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger"/>
</layout>
</parameter>
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message"/>
</layout>
</parameter>
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="2000"/>
<layout type="log4net.Layout.ExceptionLayout"/>
</parameter>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="LogFileAppender"/>
<appender-ref ref="ADONetAppender"/>
</root>
</log4net>
</configuration>

  

2.在C#中使用

工具类

   public class LogHelper
{
private const string configFileName = "Web.config";
public LogHelper()
{ }
private static void SetXmlConfigurator()
{
XmlConfigurator.Configure(new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + configFileName));
ConfigureLog4Net();
}
private static void ConfigureLog4Net()
{
Hierarchy hierarchy = LogManager.GetRepository() as Hierarchy;
if (hierarchy != null && hierarchy.Configured)
{
foreach (IAppender appender in hierarchy.GetAppenders())
{
if (appender is AdoNetAppender)
{
var adoNetAppender = (AdoNetAppender)appender;
adoNetAppender.ConnectionString =ConfigurationHelper.GetConnectionString("你配置在配置文件中的数据库名称");
adoNetAppender.ActivateOptions(); //Refresh AdoNetAppenders Settings
}
}
}
}
/// <summary>
/// 记录调试(Debug)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
/// <param name="ex">记录的异常</param>
public static void AddDebugLog(string message, Type type, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Debug(message, ex);
}
/// <summary>
/// 记录调试(Debug)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
/// <param name="ex">记录的异常</param>
public static void AddDebugLog(string message, string actionName, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Debug(message, ex);
}
/// <summary>
/// 记录调试(Debug)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
public static void AddDebugLog(string message, string actionName)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Debug(message);
}
/// <summary>
/// 记录调试(Debug)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
public static void AddDebugLog(string message, Type type)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Debug(message);
}
/// <summary>
/// 记录错误(Error)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
/// <param name="ex">记录的异常</param>
public static void AddErrorLog(string message, Type type, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Error(message, ex);
}
/// <summary>
/// 记录错误(Error)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
/// <param name="ex">记录的异常</param>
public static void AddErrorLog(string message, string actionName, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Error(message, ex);
}
/// <summary>
/// 记录错误(Error)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
public static void AddErrorLog(string message, string actionName)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Error(message);
}
/// <summary>
/// 记录错误(Error)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
public static void AddErrorLog(string message, Type type)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Error(message);
}
/// <summary>
/// 记录致命错误(Fatal)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
/// <param name="ex">记录的异常</param>
public static void AddFatalLog(string message, Type type, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Fatal(message, ex);
}
/// <summary>
/// 记录致命错误(Fatal)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
/// <param name="ex">记录的异常</param>
public static void AddFatalLog(string message, string actionName, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Fatal(message, ex);
}
/// <summary>
/// 记录致命错误(Fatal)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
public static void AddFatalLog(string message, string actionName)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Fatal(message);
}
/// <summary>
/// 记录致命错误(Fatal)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
public static void AddFatalLog(string message, Type type)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Fatal(message);
}
/// <summary>
/// 记录警告(Warn)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
/// <param name="ex">记录的异常</param>
public static void AddWarnLog(string message, Type type, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Warn(message, ex);
}
/// <summary>
/// 记录警告(Warn)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
/// <param name="ex">记录的异常</param>
public static void AddWarnLog(string message, string actionName, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Warn(message, ex);
}
/// <summary>
/// 记录警告(Warn)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
public static void AddWarnLog(string message, string actionName)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Warn(message);
}
/// <summary>
/// 记录警告(Warn)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
public static void AddWarnLog(string message, Type type)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Warn(message);
}
/// <summary>
/// 记录普通信息(Info)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
/// <param name="ex">记录的异常</param>
public static void AddInfoLog(string message, Type type, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Info(message, ex);
}
/// <summary>
/// 记录普通信息(Info)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
/// <param name="ex">记录的异常</param>
public static void AddInfoLog(string message, string actionName, Exception ex)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Info(message, ex);
}
/// <summary>
/// 记录普通信息(Info)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="actionName">记录操作的名称</param>
public static void AddInfoLog(string message, string actionName)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(actionName);
logger.Info(message);
}
/// <summary>
/// 记录普通信息(Info)日志
/// </summary>
/// <param name="message">记录的信息</param>
/// <param name="type">记录操作的类</param>
public static void AddInfoLog(string message, Type type)
{
SetXmlConfigurator();
ILog logger = log4net.LogManager.GetLogger(type);
logger.Info(message);
}
}

  

实际运用

 catch (Exception ex)
{
LogHelper.AddErrorLog("Login", this.GetType(), ex);
}

  

asp.net mvc中用 log4net记录日志到数据库中的更多相关文章

  1. ASP.NET MVC 使用 Log4net 记录日志

    Log4net 介绍 Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版.我们可以控制日志信息的输出目的地.Log4net中定义了多种日志信息输出模式.它可以根据需要 ...

  2. 使用ASP.NET MVC操作过滤器记录日志(转)

    使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_Filte ...

  3. [翻译] 使用ASP.NET MVC操作过滤器记录日志

    [翻译] 使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_ ...

  4. 在Asp.Net MVC中用Ajax回调后台方法

    在Asp.Net MVC中用Ajax回调后台方法基本格式: var operData = ...; //传递的参数(action中定义的) var type = ...; //传递的参数(action ...

  5. 将WebService部署到 SharePoint 2010 gac 缓存中,并用Log4Net记录日志到数据库

    最近做了一个sharePoint项目,需要实现的功能是,第三方网站访问我们sharePoint中的数据,通过Webservice方式实现文件的上传和下载. 于是代码工作完成了之后,本地调试没什么问题, ...

  6. 使用log4net记录日志到数据库(含有自定义属性)

    记录日志是管理系统中对用户行为的一种监控与审核,asp.net中记录日志的方式有很多种,这里我只介绍一下最近用到的log4net,关于他的具体介绍网上有很多,我讲一下他的用法. 第一步:在配置文件中的 ...

  7. ASP.NET MVC使用log4net

    本文介绍如何在ASP.NET MVC中使用log4net来记录日志文件. 参考链接:https://www.codeproject.com/Articles/823247/How-to-use-Apa ...

  8. Asp.net Mvc Entity Framework Code First 数据库迁移

    1.创建Mvc项目 2.安装Entity Framework 2.1.如下图打开程序包管理器控制台: 2.2.输入命令Install-Package EntityFramework,即可安装Entit ...

  9. ASP.NET Core使用log4net记录日志

    .NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...

随机推荐

  1. Codeforces Codeforces Round #432 (Div. 2 D ) Arpa and a list of numbers

    D. Arpa and a list of numbers time limit per test   2 seconds memory limit per test     256 megabyte ...

  2. hiho #1032: 最长回文子串

    #1032 : 最长回文子串 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在 ...

  3. Python&R&Matlab:批量生成变量

    在编写程序时,有时我们需要命名相当多的变量,比如x0.x1.x2.....xn,用手一个个打出来是相当麻烦的.那么这时我们就需要批量生成变量了. 解决这个问题的关键在于,'xn'是自动构造出来的字符串 ...

  4. python入门导读

    很多培训机构宣称py是人工智能必备的编程语言,打着速成的旗号来引诱学者学习python.事实却并不是这样的,万丈高台平地起,不论你想从事怎样的编程工作,都是从最基本的编程技巧开始的:Python并不适 ...

  5. python_自动化测试用例参数化

    参数化有三种,代码驱动,数据驱动,关键字驱动 代码驱动,测试数据写在代码中 如下: import requests,json import unittest import BeautifulRepor ...

  6. 22. ClustrixDB 杀掉恶意会话

    ClustrixDB提供了几种机制来识别消耗大量系统资源的查询.这样的查询通常是应用程序索引不良或错误的结果. ClustrixDB支持以下语法来杀死查询: KILL [QUERY | CONNECT ...

  7. OpenCV笔记(6)(harris角点检测、背景建模)

    一.Harris角点 如上图所示,红色框AB都是平面,蓝色框CD都是边缘,而绿色框EF就是角点. 平面:框往X或Y抽移动,变化都很小. 边缘:框沿X或Y轴移动,其中一个变化很小,而另外一个变化比较大. ...

  8. JavaScript 数组1—索引数组

    索引数组:下标是数字数组 ㈠什么是? 内存中连续储存多个数据的数据结构,再起一个统一的名字 ㈡为什么? ①普通的变量只能存储一个数据程序=数据结构+算法 ②算法:解决问题的步骤 ③数据结构:数据在内存 ...

  9. CSS3 的背景属性

    ㈠background-size 属性 ⑴background-size 属性规定背景图片的尺寸. ⑵在 CSS3 之前,背景图片的尺寸是由图片的实际尺寸决定的.在 CSS3 中,可以规定背景图片的尺 ...

  10. 微信小程序开发整理

    具体介绍包含以下内容: 1.文件结构 2.组件 4.API 4.工具 5.问题