asp.net mvc中用 log4net记录日志到数据库中
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记录日志到数据库中的更多相关文章
- ASP.NET MVC 使用 Log4net 记录日志
Log4net 介绍 Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版.我们可以控制日志信息的输出目的地.Log4net中定义了多种日志信息输出模式.它可以根据需要 ...
- 使用ASP.NET MVC操作过滤器记录日志(转)
使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_Filte ...
- [翻译] 使用ASP.NET MVC操作过滤器记录日志
[翻译] 使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_ ...
- 在Asp.Net MVC中用Ajax回调后台方法
在Asp.Net MVC中用Ajax回调后台方法基本格式: var operData = ...; //传递的参数(action中定义的) var type = ...; //传递的参数(action ...
- 将WebService部署到 SharePoint 2010 gac 缓存中,并用Log4Net记录日志到数据库
最近做了一个sharePoint项目,需要实现的功能是,第三方网站访问我们sharePoint中的数据,通过Webservice方式实现文件的上传和下载. 于是代码工作完成了之后,本地调试没什么问题, ...
- 使用log4net记录日志到数据库(含有自定义属性)
记录日志是管理系统中对用户行为的一种监控与审核,asp.net中记录日志的方式有很多种,这里我只介绍一下最近用到的log4net,关于他的具体介绍网上有很多,我讲一下他的用法. 第一步:在配置文件中的 ...
- ASP.NET MVC使用log4net
本文介绍如何在ASP.NET MVC中使用log4net来记录日志文件. 参考链接:https://www.codeproject.com/Articles/823247/How-to-use-Apa ...
- Asp.net Mvc Entity Framework Code First 数据库迁移
1.创建Mvc项目 2.安装Entity Framework 2.1.如下图打开程序包管理器控制台: 2.2.输入命令Install-Package EntityFramework,即可安装Entit ...
- ASP.NET Core使用log4net记录日志
.NET常用的日志组件有NLog.Log4net等,.NET CORE下微软也自带了日志组件,到目前为止还没用过,而我本人常用的是log4net,下面简单讲讲.NET CORE下怎么使用log4net ...
随机推荐
- 解决 Jenkins 乱码以及命令不存在的问题
方法一: Jenkins----系统管理----系统设置----全局属性----勾选环境变量 键 LANG 值 zh_CN.UTF-8 方法二(如果脚本用的是python): PYTHONIOENCO ...
- lsusb查看usb设备
root@ubuntu:/home/lyd/work/code/cyusb# lsusb Bus 001 Device 009: ID 04b4:00f1 Cypress Semiconductor ...
- 【VUE】Vue 源码解析
Vue 源码解析 Vue 的工作机制 在 new vue() 之后,Vue 会调用进行初始化,会初始化生命周期.事件.props.methods.data.computed和watch等.其中最重要的 ...
- k8s管理pod资源对象(上)
一.容器于pod资源对象 现代的容器技术被设计用来运行单个进程时,该进程在容器中pid名称空间中的进程号为1,可直接接收并处理信号,于是,在此进程终止时,容器即终止退出.若要在一个容器中运行多个进程, ...
- echarts常用的配置项
最近使用echarts可视化的业务,但是有一些配置项需要修改,把这段时间的学习总结一下 1. 修改默认配置 a. 去掉分割线和网格线,在xAxis或者yAxis中设置 splitLine: { sho ...
- 使用 Capistrano 部署总结
使用 Capistrano 部署总结 2014年6月27日 admin发表评论阅读评论 简介 Capistrano 是一个 Ruby 程序,它提供高级的工具集来部署你的 Web应用到服务器上.Capi ...
- 2019ICPC南京网络赛总结
这次是在学校打的,总体不算好,过两题校排200多..很惨. 开场一段时间没人过题,但是很多人交I, 我也就再看,看着看着发现不可做,这时候转F,花了半天读懂题意的时候想到主席树查找.但是主席树这种查找 ...
- DOM 修改与DOM元素
㈠HTML DOM - 修改 修改 HTML = 改变元素.属性.样式和事件. ①创建 HTML 内容 改变元素内容的最简单的方法是使用 innerHTML 属性. 下面的例子改变一个 <p ...
- B/S文件上传下载解决方案
需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制. PC端全平台支持,要求支持Window ...
- 大哥带的JavaScript伪协议
将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中.这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的 ...