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 ...
随机推荐
- 【python基础】字符串方法汇总
一.声明 0-多个字符组成的有序序列; 二.特点 1. 字符串是一个不可变的数据类型 2.字符串是有序的 三.索引 下标:'abcde' 1.从左到右, 0, 1,2, ... 2.从右到左, 索引值 ...
- jdk1.8环境变量配置
JAVA_HOME=/usr/java/jdk1.8.0_45PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOM ...
- 使用IDEA搭建一个Spring + Spring MVC 的Web项目(零配置文件)
话不多说,直接上代码: 注解是Spring的一个构建的一个重要手段,减少写配置文件,下面解释一下一些要用到的注解: @Configuration 作用于类上面,声明当前类是一个配置类(相当于一个Spr ...
- grunt-contrib-imagemin 图像压缩
grunt-contrib-imagemin:图像压缩 安装插件:npm install grunt-contrib-imagemin --save-dev 参数 optimizationLevel( ...
- Rest_Framework简介
Web应用模式 在开发Web应用中,有两种应用模式:前后端不分离和前后端分离 前后端不分离 前后端不分离通俗来讲就是不区分前端和后端,浏览器请求时服务器直接返回页面,其示意图如下 前后端分离 前后端分 ...
- python 3 与python 2连接mongoDB的区别
本文出自:https://www.cnblogs.com/2186009311CFF/p/11852010.html 好久前机缘巧合见识过量化投资,然而堵在了用python连接MongoDB数据库上, ...
- docker安装mysql5.6和redis3.2
环境:centos 6.8, docker version 1.7.1 1.docker安装mysql5.6 第一步:拉取镜像 docker pull mysql:5.6 第二步:docker run ...
- 10、堆叠窗口StackedWidget
新建项目,基类选择QMainWindow,勾选ui 堆叠窗口有三个page,每个page有个label button处,快捷菜单,转到槽,添加代码 void MainWindow::on_push ...
- 【杂题】[ARC070F] Honest Or Unkind【交互】
Description 这是一道交互题 有A+B个人,编号从0~A+B-1,其中有A个人是诚实的,B个人是居心叵测的. 你想知道每个人是诚实的还是居心叵测的. 询问可以用二元组(i,j)表示,代表问编 ...
- Spark-PySpark sql各种内置函数
_functions = { 'lit': 'Creates a :class:`Column` of literal value.', 'col': 'Returns a :class:`Colum ...