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. liunx和aix 系统开启ftp服务

    AIX开启ftp服务: 1.ftp服务的守护进程是否存在 #lssrc -s inetd 2.ftp服务的开启与关闭 #startsrc -t ftp #stopsrc -t ftp 3.ftp服务是 ...

  2. 设计数据结构之LRU缓存

    leetcode 146. LRU Cache class LRUCache { private: struct Node { int key; int val; Node* prev; Node* ...

  3. 4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (20 分)中的一些问题

    1.Employee类的equals 由于题目要求//首先调用父类的equals方法,如果返回true.再比较company与salary.//比较salary属性时,使用DecimalFormat ...

  4. 希尔排序java代码

    //希尔排序 通过测试 public class ShellSortTest{ public static void shellSort(int [] arrays){ for(int d=5;d&g ...

  5. uniapp引用iconfont图标

    不得不说uniapp引入iconfont确实比较坑.下面方法可行: 引入方法: 1.在confont官网找好图标,然后点击复制代码, 2.点击红圈的复制代码后在网页打开,出现如下: 3.然后再unia ...

  6. spark 任务导致tmp目录过大

    现象:hdp的集群没有配置spak的临时本地目录,默认在跑程序的时候会将中间过程的文件存放在本地的/tmp目录下 如果跑的spark数据量过大,就会导致/tmp下文件过大,最终导致根分区被占满,系统崩 ...

  7. [人物存档]【AI少女】【捏脸数据】气质学生

    点击下载(城通网盘): AISChaF_20191119010459547.png

  8. laravel发送邮件模板中点击的链接url动态生成

    邮件模板里有url链接,生成链接有三种方式(目前总结出这三种方式)这个链接可以是: http://www.xxx.com/active?id=xxx&token=xxx   这种形式是把url ...

  9. 【java工具类】上传文件

    /**上传文件 * @param file 文件 * @param filePath 上传文件路径,不包含文件名 * @param fileName 新的文件名 * @return 返回一个路径名 * ...

  10. 关键字static在标准C/C++的作用

    static总结:根据作用域,存储域,生命周期3点来说 static含义: 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性. (1)标准C语言中,static的最主要功能是隐藏,其次 ...