添加日志接口

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CZBK.ItcastOA.Log
{public class Log{/// <summary>/// 日志实体类/// </summary>private ILog logger;/// <summary>/// 构造函数/// </summary>/// <param name="log">日志操作对象</param>public Log(ILog log){this.logger = log;}/// <summary>/// 调试日志/// </summary>/// <param name="message">消息</param>public void Debug(object message){this.logger.Debug(message);}/// <summary>/// 错误日志/// </summary>/// <param name="message">消息</param>public void Error(object message){this.logger.Error(message);}/// <summary>/// 信息日志/// </summary>/// <param name="message">消息</param>public void Info(object message){this.logger.Info(message);}/// <summary>/// 警告日志/// </summary>/// <param name="message">消息</param>public void Warn(object message){this.logger.Warn(message);}}
}

添加日志工厂

using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CZBK.ItcastOA.Log
{public class LogFactory{/// <summary>/// 构造函数/// </summary>static LogFactory(){log4net.Config.XmlConfigurator.Configure();}/// <summary>/// 获取日志操作对象/// </summary>/// <param name="type">类型</param>/// <returns></returns>public static Log GetLogger(Type type){return new Log(LogManager.GetLogger(type));}/// <summary>/// 获取日志操作对象/// </summary>/// <param name="str">名字</param>/// <returns></returns>public static Log GetLogger(string str){return new Log(LogManager.GetLogger(str));}}
}

添加log4net.config

<?xml version="1.0" encoding="utf-8" ?>
<log4net><!--根配置--><root><!--日志级别:可选值: ERROR > WARN > INFO > DEBUG --><level value="ERROR"/><level value="WARN"/><level value="INFO"/><level value="DEBUG"/><appender-ref ref="ErrorLog" /><appender-ref ref="WarnLog" /><appender-ref ref="InfoLog" /><appender-ref ref="DebugLog" /></root><!-- 错误 Error.log--><appender name="ErrorLog" type="log4net.Appender.RollingFileAppender"><!--目录路径,可以是相对路径或绝对路径--><param name="File" value="App_Data"/><!--文件名,按日期生成文件夹--><param name="DatePattern" value="/yyyy-MM-dd/&quot;Error.log&quot;"/><!--追加到文件--><appendToFile value="true"/><!--创建日志文件的方式,可选值:Date[日期],文件大小[Size],混合[Composite]--><rollingStyle value="Composite"/><!--写到一个文件--><staticLogFileName value="false"/><!--单个文件大小。单位:KB|MB|GB--><maximumFileSize value="200MB"/><!--最多保留的文件数,设为"-1"则不限--><maxSizeRollBackups value="-1"/><!--日志格式--><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message"/></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ERROR" /><param name="LevelMax" value="ERROR" /></filter></appender><!-- 警告 Warn.log--><appender name="WarnLog" type="log4net.Appender.RollingFileAppender"><!--目录路径,可以是相对路径或绝对路径--><param name="File" value="App_Data"/><!--文件名,按日期生成文件夹--><param name="DatePattern" value="/yyyy-MM-dd/&quot;Warn.log&quot;"/><!--追加到文件--><appendToFile value="true"/><!--创建日志文件的方式,可选值:Date[日期],文件大小[Size],混合[Composite]--><rollingStyle value="Composite"/><!--写到一个文件--><staticLogFileName value="false"/><!--单个文件大小。单位:KB|MB|GB--><maximumFileSize value="200MB"/><!--最多保留的文件数,设为"-1"则不限--><maxSizeRollBackups value="-1"/><!--日志格式--><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message"/></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="WARN" /><param name="LevelMax" value="WARN" /></filter></appender><!-- 信息 Info.log--><appender name="InfoLog" type="log4net.Appender.RollingFileAppender"><!--目录路径,可以是相对路径或绝对路径--><param name="File" value="App_Data"/><!--文件名,按日期生成文件夹--><param name="DatePattern" value="/yyyy-MM-dd/&quot;Info.log&quot;"/><!--追加到文件--><appendToFile value="true"/><!--创建日志文件的方式,可选值:Date[日期],文件大小[Size],混合[Composite]--><rollingStyle value="Composite"/><!--写到一个文件--><staticLogFileName value="false"/><!--单个文件大小。单位:KB|MB|GB--><maximumFileSize value="200MB"/><!--最多保留的文件数,设为"-1"则不限--><maxSizeRollBackups value="-1"/><!--日志格式--><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message"/></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter></appender><!-- 调试 Debug.log--><appender name="DebugLog" type="log4net.Appender.RollingFileAppender"><!--目录路径,可以是相对路径或绝对路径--><param name="File" value="App_Data"/><!--文件名,按日期生成文件夹--><param name="DatePattern" value="/yyyy-MM-dd/&quot;Debug.log&quot;"/><!--追加到文件--><appendToFile value="true"/><!--创建日志文件的方式,可选值:Date[日期],文件大小[Size],混合[Composite]--><rollingStyle value="Composite"/><!--写到一个文件--><staticLogFileName value="false"/><!--单个文件大小。单位:KB|MB|GB--><maximumFileSize value="200MB"/><!--最多保留的文件数,设为"-1"则不限--><maxSizeRollBackups value="-1"/><!--日志格式--><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message"/></layout><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter></appender></log4net>

修改Web.config

添加ExceptionFilter异常过滤器,捕获异常记录静态队列

在Global中Application_Start函数中开启线程,扫描异常队列调用日志工厂记录异常信息

MCV使用ExceptionFilter和log4net记录程序异常日志相关推荐

  1. 记录程序写入日志_终于有人把MySQL 三大日志讲清楚了

    点击上方"蓝字",关注了解更多 日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日 ...

  2. 演示如何利用log4net记录程序日志信息

    log4net是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控制台.Windows事件日志和数据库(包括 MS SQL Server, Access, Oracl ...

  3. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  4. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  5. asp.net mvc中加入log4net记录错误日志

    直接上代码示例:https://share.weiyun.com/aff36f2547514cfefe129ebb8ccb28ef 首先添加加log4net的dll,推荐用nuget.... 贴上配置 ...

  6. .NET Core整合log4net以及全局异常捕获实现2

    Startup代码 1 public static ILoggerRepository repository { get; set; } 2 public Startup(IConfiguration ...

  7. 使用Spring跟踪应用程序异常

    几周前,一位同事要求我花一个星期的时间做后援,因为他需要一个掩护,而他度过了一个赚钱的假期,而他找不到其他人. 当我刚完成一个特别复杂的编码项目并感到有些疲倦时,我说"是". 毕竟 ...

  8. C#错误异常日志记录到文件

    当我们将网站布署到线上之后,为了实时了解网站的运行情况,如是否有错误页面.网站运行速度.是否有攻击等.那么我们就很有必要为网站加上错误与异常记录到日志文件,这样就可以随时查看网站的线上运行情况,另有一 ...

  9. # 关于Qt程序异常结束, The process was ended forcefully问题

    Qt学习记录 关于Qt程序异常结束, The process was ended forcefully问题 今天在编写Qt信号槽函数的过程中,出现了: 14:38:42: 程序异常结束. 14:38: ...

最新文章

  1. dojo从asp.net中获取json数据
  2. 原生html js css绘制折现图,HTML5教程 Chart.js自定义提示折线图
  3. 一个关于wwf和linq的部署问题?
  4. Linux信号列表(sigint,sigtstp..)
  5. SAP_SD_客户退货需要做哪些处理
  6. jsp,最常用的3个知识点
  7. 2012 人民搜索 实习生招聘 笔试题
  8. android mvvm流程图,MVVM框架模式详解
  9. 区块链开发公司谈区块链与大数据的关系
  10. 【转载】jvm内存回收
  11. c语言补全程序,跪求高手解答简单的程序补全题~!
  12. 有趣的守萝卜的兔子卡通动画404页面源码 自适应
  13. 95-34-035-Context-HeadContext和TailContext
  14. 你了解分层架构吗?给被PetShop“毒害”的朋友(转)
  15. RMBP下eclipse支持高清
  16. Intellij IDEA--导入导出配置
  17. 高中数学题库及答案(经典50题)
  18. linux 中 etc fstab目录,Linux学习— /etc/fstab文件详解
  19. seo与sem的区别与联系(大全篇)
  20. 【数据结构】一张图让你读懂:树的高度、深度、层的区别

热门文章

  1. 解决flutter应用模拟器出现System UI isn‘t respon报错
  2. 数据库开发工具:Navicat Premium 15 mac中文版
  3. 四步骤搞定专属PE系统【xitongshoucang.com】
  4. 中国智能农业行业市场供需与战略研究报告
  5. 要让读者在不看任何数学公式的情况下理解傅里叶分析。
  6. 济南电子机械工程学校计算机专业班主任,济南电子机械工程学校
  7. qcustomplot圆_Qt之QCustomPlot(图形库)
  8. 路由器AP、路由、桥接模式有什么区别【详细介绍】
  9. 野指针的成因_C语言
  10. excel计算二元线性回归_怎么看懂Excel线性回归参数