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);}
转载于:https://www.cnblogs.com/Tom-yi/p/7805063.html
asp.net mvc中用 log4net记录日志到数据库中相关推荐
- ASP.NET+MVC+使用+Log4net+记录日志笔记
前言: 记录系统中的日志,是一个好的项目产品必备的一个环节.每一个产品最终的目的都是要交予客户使用,因为程序员代码的开发水平参差不齐,Bug就成为了项目运维成本最大的因素之一.如何降低项目运维的成本呢 ...
- ASP.NET MVC 使用 Log4net 记录日志
Log4net 介绍 Log4net 是 Apache 下一个开放源码的项目,它是Log4j 的一个克隆版.我们可以控制日志信息的输出目的地.Log4net中定义了多种日志信息输出模式.它可以根据需要 ...
- ASP.NET MVC 使用Log4Net在不同目录中记录不同类型的日志
在上一篇文章中,实现了利用Log4Net记录系统中出现的问题.如果同时还需要记录用户操作的监控日志,就需要一些修改 修改Web.Cofig配置文件 ,增加一个logger节点和appender节点,用 ...
- C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布
C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows.Liux环境下程序发布 一. MVC含义 二.数据传输 1.控制器向视图传输数据 三.日志组件Log4net ...
- 在ASP.NET中将图片存储到Sql Server数据库中
在ASP.NET中将图片存储到Sql Server数据库中 http://hi.baidu.com/rayshow/blog/item/360e8ff9662c8b5a252df268.html 索引 ...
- 使用log4net记录日志到数据库(含有自定义属性)
记录日志是管理系统中对用户行为的一种监控与审核,asp.net中记录日志的方式有很多种,这里我只介绍一下最近用到的log4net,关于他的具体介绍网上有很多,我讲一下他的用法. 第一步:在配置文件中的 ...
- ASP.NET MVC使用log4net
本文介绍如何在ASP.NET MVC中使用log4net来记录日志文件. 参考链接: https://www.codeproject.com/Articles/823247/How-to-use-Ap ...
- ASP.NET MVC CODE FIRST 图书管理系统 数据库
ASP .NET MVC CODE FIRST 图书管理系统 本项目最后更新于2018-7-4,可能会因为没有更新而失效.如已失效或需要修正,请提issue! 我使用VS2017进行开发,框架是.NE ...
- ASP.NET MVC 使用Log4Net记录系统运行中问题
log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介. 在NuGet程序包中下载log4Net组件, ...
最新文章
- php 正则表达式 x,php – 匹配x正则表达式或y正则表达式
- 【解题报告】Leecode 643. 子数组最大平均数 I——Leecode 刷题系列
- mysql中的get_lock锁机制解析
- Oracle Explain Plan,hint解释与示例
- sql server 锁与事务拨云见日(下)
- ROS 可视化(一): 发布PointCloud2点云数据到Rviz
- 限定某个目录禁止解析php 限制user_agent php相关配置
- datatable自定义搜索和导出按钮并解决在后端分页无法导出全部数据的问题
- Bing翻译和Google翻译的比较
- 三菱无机房电梯故障代码查询_三菱无机房电梯的故障代码
- 方正璞华:硬核攻关,自主创新,推动印前处理自动化云流程走向世界
- 新书推荐 |《深入浅出Serverless:技术原理与应用实践》
- 使用 python 脚本爬取豆瓣电影排行榜
- 微信小程序引入字体图标 1
- LabVIEW FPGA PCIe开发讲解-7.1节:FPGA PCIe/PXIe基础知识和概念概述
- 学生个人单页面网页作业 学生网页设计成品 静态HTML网页单页制作 dreamweaver网页设计与制作代码 web前端期末大作业
- android ndk arm,Android NDK ARM构建设置可在大多数设备上运行?
- 计算机的最新发展趋势
- Python爬虫小结(转)
- 树莓派js调用C语言,SpiderMonkey js中调用c程序
热门文章
- PHP __compare 魔术方法的实现
- exchange 2010 集线器(hub)外发邮件的配置
- oracle基础琐碎总结-----Where和Having的区别与联系
- 在Windows服务器上开启SNMP代理程序
- windows 2008初体验常见问题: 无线网络没有正确配置为使用IP协议 错误解决办法...
- where to park your bike?
- linkedin规则
- 【转】光栅化操作阶段
- vsftp实现只能上传不能下载、删除权限配置
- Vant 1.6.11 发布,有赞轻量级移动端 Vue 组件库