磨刀不误砍柴工—Exceptionless搭配log4net记录日志

Exceptionless专注于.net平台提供实时错误和日志报告。主要包括:错误通知、智能分组异常、详细错误报告堆栈跟踪、支持离线、UI查看重要错误和确定优先级、仪表板上的统计信息和趋势、对异常标记为已修复,监视回归、将事件标记为关键等。主要是用于展示、分析;

log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。要想获取最新版本的log4net组件库,可以到官方网站http://logging.apache.org/log4net/下载。现在的最新版本是1.2.10。主要用于自定义收集日志;

下面的例子展示了如何利用log4net配合Exceptionless记录日志 。配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /></configSections><log4net><!--定义输出到文件中--><appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"><!--定义文件存放位置--><file value="log\\" /><!--是否追加到文件,默认为true,通常无需设置--><appendToFile value="true" /><!--多线程时采用最小锁定--><lockingModel type="log4net.Appender.FileAppender+MinimalLock" /><!--变换的形式为日志大小--><!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义--><!--<rollingStyle value="Size" />--><!--每天记录的日志文件个数,与maximumFileSize配合使用--><!--<MaxSizeRollBackups value="10" />--><!--每个日志文件的最大大小--><!--可用的单位:KB|MB|GB--><!--不要使用小数,否则会一直写入当前日志--><!--<maximumFileSize value="2MB" />--><!--变换的形式为日期,这种情况下每天只有一个日志--><!--此时MaxSizeRollBackups和maximumFileSize的节点设置没有意义--><rollingStyle value="Date" /><!--每分钟写一个文件--><!--<datePattern value="yyyyMMdd-HHmm" />--><!--日期的格式,每天换一个文件记录,如不设置则永远只记录一天的日志,需设置--><datePattern value="yyyyMMdd\\HH'.txt'" /><staticLogFileName value="false" /><param name="MaxSizeRollBackups" value="100" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%newline %n记录时间:%date %n描述:%message" /><!--<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n" />--></layout></appender><appender name="exceptionless" type="Exceptionless.Log4net.ExceptionlessAppender,Exceptionless.Log4net" /><root><!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--><!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--><!--如果没有定义LEVEL的值,则缺省为DEBUG--><level value="ALL" /><!--文件形式记录日志--><appender-ref ref="RollingLogFileAppender" /><appender-ref ref="exceptionless" /></root></log4net>
</configuration>

Startup

public Startup(IConfiguration configuration){Configuration = configuration;//repository = LogManager.CreateRepository("NETCoreRepository");指定配置文件//XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));}

app.UseExceptionless()

ExceptionlessClient.Default.Configuration.ApiKey = Configuration.GetSection("Exceptionless:ApiKey").Value;// ExceptionlessClient.Default.Configuration.ServerUrl = Configuration.GetSection("Exceptionless:ServerUrl").Value;app.UseExceptionless();

使用

//public IActionResult Index()//{//    try//    {//        // Submit logs//        ExceptionlessClient.Default.SubmitLog("Logging made easy");//        // You can also specify the log source and log level.//        // We recommend specifying one of the following log levels: Trace, Debug, Info, Warn, Error//        ExceptionlessClient.Default.SubmitLog(typeof(Program).FullName, "This is so easy", "Info");//        ExceptionlessClient.Default.CreateLog(typeof(Program).FullName, "This is so easy", "Info").AddTags("Exceptionless").Submit();//        // Submit feature usages//        ExceptionlessClient.Default.SubmitFeatureUsage("MyFeature");//        ExceptionlessClient.Default.CreateFeatureUsage("MyFeature").AddTags("Exceptionless").Submit();//        // Submit a 404//        ExceptionlessClient.Default.SubmitNotFound("/somepage");//        ExceptionlessClient.Default.CreateNotFound("/somepage").AddTags("Exceptionless").Submit();//        // Submit a custom event type//        ExceptionlessClient.Default.SubmitEvent(new Event { Message = "Low Fuel", Type = "racecar", Source = "Fuel System" });//        throw new Exception("ExceptionDemo 的异常");//    }//    catch (Exception ex)//    {//        ex.ToExceptionless().Submit();//    }//    return View();//}
f3bf792627fd18fd41e8e8971dc01bff.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

豆瓣9.6分!再一次被BBC的纪录片震惊!

英国广播公司BBC的纪录片素来就是高质量的代名词&#xff0c;推出的《地球无限》(Planet Earth)、《地球的力量》(Earth The Power of the Planet)、《冷血生命》(Life In Cold Blood)等片不仅在英国播放时获得极高收视&#xff0c;还获得艾美奖等多个国际奖项的肯定&#xff0…

C++中事件机制的简洁实现

事件模型是被广泛使用的好东西&#xff0c;但是C标准库里没有现成的&#xff0c;其他实现又复杂或者不优雅&#xff0c;比如需要使用宏。现在VC11可以用在XP下了&#xff0c;那么就痛快的拿起C11提供的先进设施组合出一个轻便的实现吧。 为了达到简洁的目的&#xff0c;需要放弃…

Andorid之Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)的用法总结

在调试代码的时候我们需要查看调试信息&#xff0c;那我们就需要用Android Log类。 android.util.Log常用的方法有以下5个&#xff1a;Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE&#xff0c;DEBUG,INFO, WARN&#xff0c;ERROR。 1、Log.v 的调…

VS2010下的多线程窗口

多线程的调试一直是一个令人蛋疼的问题&#xff0c;一般的解决方法是写Log。有的时候想要直观地看一下线程的运行状态&#xff0c;简直是困难。幸好vs2010给我们提供了一个多线程窗口。 使用方式&#xff1a; 1、按F5进入调试状态下 2、按图1所示打开多线程窗口 图1 打开多线程…

Typora 开始收费, 不妨试试这个开源免费的MD编辑器

相信大家很多人都已经知道了, 最好用最受欢迎的 markdown 编辑器 - Typora, 从 1.0.0 版本已经开始收费, 根据其官网的介绍, 收费方式为买断制, 也就是一次付费永久使用, 价格是14.99 刀, 另外支持支付宝付款, 89 元人民币, 最多支持3台设备使用, 对于我来说, 算上家里和公司的…

linux+4.4+android,Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法

Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法跟Ubuntu 12.04 - 13.10 以及jellybean编译环境配置没多大区别, 顺便记录下而已:64位Ubuntu 11.10下Android开发环境的搭建(JDKEclipseADTAndroid SDK详细) http://www.linuxidc.com/Linux/2013-06/85303.htm一、配置依赖…

Blazor是春天还是寒风里的挣扎

title: Blazor是春天还是寒风里的挣扎 date: 2021-10-25 14:00:00 toc: true categories:- Blazor tags:- Blazor- MASA Blazor#官方解释BlazorBlazor允许您使用c#而不是JavaScript构建交互式web UI。Blazor应用由可重用的web UI组件组成&#xff0c;这些组件使用c#、HTML和CSS…

js个人笔记

2019独角兽企业重金招聘Python工程师标准>>> 看锋利的jquery第二版&#xff0c;&#xff0c;在前言的时候说建议使用最新版jquery&#xff0c;&#xff0c;然而在第二章结尾的地方有用到toggle()这个方法&#xff0c;&#xff0c;我自己用发现和书上的功能不同&…

linux ntfs 速度慢,将U盘磁盘格式改成NTFS解决u盘复制速度慢问题

1、我们首先要看看U盘的文件系统是哪个?打开计算机-可移动磁盘-右击属性。2、目前打多数U盘采用的都是FAT32格式&#xff0c;这也是大多数USB2.0船速速度比较慢的原因。我们先用文件大小测试一个它的读写速度&#xff0c;格子这里用的是一个大概四百兆的文件&#xff0c;为了让…

Android之进程与线程的讲解

安卓平台中当首次启动运行一个组件的时候&#xff0c;Android会相应的启动了一个进程。默认的&#xff0c;所有的组件和程序运行在这个进程和线程中&#xff0c;也可以安排组件在其他的进程或者线程中运行。 进程&#xff1a;组件运行的进程由manifest file控制。组件的节点 —…

Xamarin.Android和UWP之MVVM的简单使用(二)

0x01 前言 前面一篇&#xff0c;Xamarin.Android和UWP之MVVM的简单使用(一)&#xff0c;主要讲了MvvmLight的简单使用 这篇主要讲讲MvvmCross的简单使用&#xff0c;例子的话&#xff0c;还是和上篇的一样。直接进正题吧&#xff0c;不废话了。 0x02 简单的MVVM(mvvmcross) Dem…

ExtJs 带分页的comboBox

ExtJs 带分页的comboBox 如何得到当前第几页&#xff1f; 希望技术牛人能帮帮我&#xff0c;也可以加我扣扣【445958】&#xff0c; 交流JAVA Ext 框架等方面的技术&#xff01;转载于:https://blog.51cto.com/ajiao13/1133773

软件工程之个人项目--词频统计

不得不说对于菜鸟级的我&#xff0c;这是一次心酸的经历啊。。。自打接到王老师布置的这个任务&#xff08;个人项目&#xff09;之后&#xff0c;我心里一直在想着自己要用哪种语言来完成我的任务。以前多多少少写过一些程序的&#xff0c;这又想起了数据库小学期与永哥和小强…

史上最被低估的神级学科,看完忍不住感慨“它”也太重要了!

▲ 点击查看著名物理学家、数学家曾说&#xff1a;几何学的简洁美&#xff0c;却又是几何学之所以完美的核心存在。几何始于数学&#xff0c;但它的意义和影响却远超数学。一个个枯燥的数字和一个个简单的图形&#xff0c;却可以帮助我们解决很多问题&#xff0c;了解自然的规律…

.NET6之MiniAPI(三):Response

MiniAPI中&#xff0c;Response的返回数据有三种格式&#xff0c;IResult&#xff0c;string&#xff0c;json&#xff1a;ValueTask<string> - 这包括 string 和 Task<string>T&#xff08;任何其他类型&#xff0c;返回前端时转成json&#xff09;- 这包括 Task&…

ffmpeg speex转换为mp3或者aac

2019独角兽企业重金招聘Python工程师标准>>> 输入&#xff1a; flv格式&#xff0c;视频264编码&#xff0c;音频speex编码 -8:[rootandrew ffmpeg-3.0./ffprobe test_speex1.flv 32:ffprobe version 3.0-static32: Copyright (c) 2007-2016 the FFmpeg developers3…