使用log4net+IExceptionFilter+Server酱完成异常日志信息推送

异常在开发当中总是存在的,开发人员和测试人员不可能24小时,呆在电脑旁边处理异常。而将这些异常要点记录下来形成日志,则是很有必要的,这将有助于我们快速定位解决问题,提高效率,减少人力成本。

新建.net core api项目

新建API控制器StudentController,更改route规则,新建动作方法ExceptionTest,里面写入一个错误。新建基础设施层类库Util。

引入log4net日志框架,并完成相关配置

在Util层安装log4net包

在API层下新建log4net.config配置文件,以配置日志相关设置,并且完成配置文件的内容。(内容无需自己手写,只需配置会用即可,下方内容中有详细注释,开发当中根据实际需要进行配置)

新建日志Util类,新建日志初始化,封装日志的记录操作

在startup构造函数当中,初始化日志仓库的LogInit(记得添加引用)

完成异常过滤器类

自定义异常过滤器类:GlobalExceptionFilter,继承自IExceptionFilter,并实现接口:OnException

在控制器中注入异常过滤器

试着运行一下:发现日志果然有了。

接下来使用免费的第三方微信公众号提醒:Server酱

地址:http://sc.ftqq.com/3.version 方法很简单,上面有教程。

接着在过滤器那里调用接口,每当有错误信息时,给我们发送一条提示信息

测试一下,发现果然可以:

好了今天的实例到这里就结束了,多学习,多写,多思考,多交流,共同进步!关于邮箱通知的,下次补上,你们也可以自己试试,

微信公众号:dotNET学习天地

示例代码下载地址:https://github.com/huguangcheng/_NET-Core_Study/tree/master/ExceptionLog

原文地址:https://www.cnblogs.com/xingxingzhou/p/11997676.html

时间: 2024-07-31 04:30:52

使用log4net+IExceptionFilter+Server酱完成异常日志信息推送的相关文章

从壹开始 [Admin] 之四 || NetCore + SignalR 实现日志消息推送

缘起 哈喽大家周一好呀,感觉好久没有写文章了,上周出差了一次,感觉还是比坐办公室好的多,平时在读一本书<时生>,感兴趣的可以看看??...... 这几天翻看 NetCore 相关知识扩展的时候,发现了久违的一个知识点 —— SignalR ,为啥说久违呢,因为去年的时候,我在公司的项目里就想用了,后来组员说他学学看,也没有了下文,我也就耽搁了,昨天突然看到这个了,想着正好看看吧,尽量落地到 NetCore 项目上,当时我很自信的以为这个技术很老了,应该用的人很多,可是天不遂人愿,在.Net M

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

前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速创建系统日志,如何扩展以输出自定义字段. 用户可以从http://logging.apache.org/log4net/下载log4net的源代码.解压软件包后,在解压的src目录下将log4net.sln载入Visual

log4net日志信息 插入 mysql数据库?

log4net配置文件如下: <!--插入数据库--> <appender name="AdoNetAppender_MySql" type="log4net.Appender.ADONetAppender"> <bufferSize value="1"/> <connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.

SQL Server 事务、异常和游标

建议先阅读存储过程:SQL Server 存储过程 ? 事务 在数据库中有时候需要把多个步骤的指令当作一个整体来运行,这个整体要么全部成功,要么全部失败,这就需要用到事务. 1. 事务的特点 事务有若干条T-SQL指令组成,并且所有的指令昨晚一个整体提交给数据库系统,执行时,这组指令要么全部执行完成,要么全部取消.因此,事务是一个不可分割的逻辑单元. 事务有4个属性:原子性(Atomicity).一致性(Consistency).隔离性(Isolation)以及持久性(Durability),也

监控线上系统异常日志

在监控线上系统时,需要实时监控异常日志信息,想到三种办法: 1.在应用代码里调用报警逻辑.如,catch到异常时,在catch代码块里调用报警接口. 2.使用shell脚本,如,tail -f | grep '***'.tail -f会间隔一秒读取日志内容,通过grep设置关键字,可以读取异常欣喜. 3.使用监控工具,如,Nagios. 监控线上系统异常日志,码迷,mamicode.com

.Net 开源异常日志ExceptionLess搭建

ExceptionLess是一款免费开源的分布式日志收集框架,DotNet的几乎所有类型的程序都可以支持,并且还提供了接口,可以很方便的在js中进行日志的推送. 参考: http://www.cnblogs.com/uptothesky/p/5864863.htmlhttp://www.cnblogs.com/savorboard/p/exceptionless.htmlhttp://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654067937

转:使用log4net完成程序异常日志记录(使用SQLite数据库记录和普通文本记录)

http://www.cnblogs.com/kyo-yo/archive/2010/06/11/use-log4net-to-log-exception.html 在前端时间开发的时候由于需要将异常保存到数据库中,所以就到网上搜了下专门的日志记录工具,一搜果然很多,比如:log4net,NLog,EntLib Logging等等,但是还是log4net名气最大,所以就下载下来试用了一番,果然很方便,其涵盖了所有常用的日志记录方式具体的可以看下表: AdoNetAppender 将日志记录到数据

redis队列结合log4net实现异常日志记录

查看了一些关于mvc异常日志记录的文章,发现使用redis+log4net的最多,这里简单总结了使用这种方式实现日志记录的过程.直接上步骤: 第一步:配置redis服务器 参考redis的配置和在.net中的使用 第二步:添加自己的异常过滤器(Models文件夹添加一个MyExceptionAttribute类) 1 public class MyExceptionAttribute : HandleErrorAttribute 2 { 3 //----所有用户出现异常,向同一个静态队列添加数据

ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面

应用场景和使用目的 很多时候,我们在访问页面的时候,由于程序异常.系统崩溃会导致出现黄页.在通常的情况下,黄页对于我们来说,帮助是极大的,因为它可以帮助我们知道问题根源,甚至是哪一行代码出现了错误.但这对于用户是非常可怕的,因为用户不知道发生了什么,也无法了解黄页给出的内容.甚至,如果我们遇到一些不友好的人,他们会拿这些内容大做文章,对我们网站产生威胁. 那我们如何在程序异常.系统崩溃时,不会出现黄页,并且还可以给出一些更加友好的提示呢?甚至在我们需要的时候,可以收集这些异常信息,并加以分析,能