在.NET Core中使用Exceptionless分布式日志收集框架
一.Exceptionless简介
Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等技术栈的应用程序中,并且提供了Rest接口可以应用在 Javascript,Node.js 中。它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置。
在以前,我们做日志收集大多使用 Log4net,Nlog 等框架,在应用程序变得复杂并且集群的时候,可能传统的方式已经不是很好的适用了,因为收集各个日志并且分析他们将变得麻烦而且浪费时间。
现在Exceptionless团队给我们提供了一个更好的框架来做这件事情,我认为这是非常伟大并且有意义的,感谢他们。
二.使用
这里有两种方式(本地,远程)
- 本地需要一定的环境要求(NET 4.6.1 、Java JDK 1.8+、IIS Express 8+)
- 远程就比较方便了,非常的方便,那么今天就给大家来一波Exceptionless远程使用的教程。
三.注册账号并配置
GitHub:https://github.com/exceptionless/Exceptionless
关于官方首页访问慢的问题,那没有办法,最好翻个梯子,当然也就只是首页慢了点,因为首页有谷歌的api,管理页面就没有那么卡了(36ms)左右。
由于我们使用的远程日志,我们得进入官方申请账号,进入官方进行账号注册。
进入创建项目,输入项目信息,创建项目!
这里当然可以选择我们喜爱的.NET Core !官方已经给你说好了,那么这个时候你的项目就可以用Exceptionless来记录日志了。那我们来创建一个.NET Core 程序吧?
四.在程序中进行远程记录
nuget完Exceptionless.AspNetCore之后会出现一个txt文件,这个txt文件是给你的一个简单的使用教程, 当然你可以选择删除。
配置中间件
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseExceptionless("xxxxxxxxxxxxxx");
app.UseMvc();
}
这个时候你就可以正常使用了,那么我们现在故意报错一下!
public ActionResult<IEnumerable<string>> Get()
{
throw new Exception("my text info");
return new string[] { "value1", "value2" };
}
现在启动我们的浏览器,报错成功。
那我们的框架收集到了吗?刷洗一下,成功记录下来了。
那它替我们收集了什么信息呢?我们一探究竟!点进去噢!发现这真的太棒了。
除了记录一些基本的http信息之外,竟还有系统版本、系统架构、电脑版本、运行时等。灰常NB啊。
当然我们恶意报错是不对的,可以trycath一下,那么代码就变成了这样。
try
{
throw new ApplicationException(Guid.NewGuid().ToString());
}
catch(Exception ex)
{
ex.ToExceptionless().Submit();
}
除了一些异常记录之外,ExceptionLess还提供了Log (日志)、Feature Usages(功能用途)、404、Custom Event(自定义事件)。扩展的东西是在 ExceptionlessClient.Default类中。有兴趣的话可以研究。
附日志记录封装类(很简单的那种。大佬别打我)
public class ExceptionLessLog :ILog
{ /// <summary>
/// 跟踪
/// </summary>
public void Trace(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Trace).AddTags(tags).Submit();
} /// <summary>
/// 调试
/// </summary>
public void Debug(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Debug).AddTags(tags).Submit();
} /// <summary>
/// 信息
/// </summary>
public void Info(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Info).AddTags(tags).Submit();
} /// <summary>
/// 警告
/// </summary>
public void Warn(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Warn).AddTags(tags).Submit();
} /// <summary>
/// 错误
/// </summary>
public void Error(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Error).AddTags(tags).Submit();
}
}
总结:
ExceptionLess功能非常强大,你看我都没怎么敲代码就搞定了这么炫酷的功能,没试过的小伙伴赶紧试一试吧.
- 相关文章1:http://www.cnblogs.com/savorboard/p/exceptionless.html (远程)
- 相关文章2:https://www.cnblogs.com/yilezhu/p/9193723.html(本地部署)
在.NET Core中使用Exceptionless分布式日志收集框架的更多相关文章
- 分布式日志收集框架Flume
分布式日志收集框架Flume 1.业务现状分析 WebServer/ApplicationServer分散在各个机器上 想在大数据平台Hadoop进行统计分析 日志如何收集到Hadoop平台上 解决方 ...
- ExceptionLess异常日志收集框架-1
哈哈,中秋和代码更配哦,不知不觉一年过半了,祝园友们中秋快乐 前一阵子在博客园看到了一篇博文 http://www.cnblogs.com/savorboard/p/exceptionless.htm ...
- 学习笔记:分布式日志收集框架Flume
业务现状分析 WebServer/ApplicationServer分散在各个机器上,想在大数据平台hadoop上进行统计分析,就需要先把日志收集到hadoop平台上. 思考:如何解决我们的数据从其他 ...
- 分布式日志收集之Logstash 笔记(一)
(一)logstash是什么? logstash是一种分布式日志收集框架,开发语言是JRuby,当然是为了与Java平台对接,不过与Ruby语法兼容良好,非常简洁强大,经常与ElasticSearch ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- Net Core集成Exceptionless分布式日志功能以及全局异常过滤
Net Core集成Exceptionless分布式日志功能以及全局异常过滤 相信很多朋友都看过我的上篇关于Exceptionless的简单入门教程[asp.Net Core免费开源分布式异常日志收集 ...
- Net Core免费开源分布式异常日志收集框架Exceptionless
asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 https://www.cnblogs.com/yilezhu/p/9193723.htm ...
- 【转】asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
随机推荐
- Spark核心编程---创建RDD
创建RDD: 1:使用程序中的集合创建RDD,主要用于进行测试,可以在实际部署到集群运行之前,自己使用集合构造测试数据,来测试后面的spark应用流程. 2:使用本地文件创建RDD,主要用于临时性地处 ...
- 搭建centos7的开发环境3-Spark安装配置
说起大数据开发,必然就会提到Spark,在这片博文中,我们就介绍一下Spark的安装和配置. 这是Centos7开发环境系列的第三篇,本篇的安装会基于之前的配置进行,有需要的请回复搭建centos7的 ...
- jieba库分词
(1)团队简介的词频统计 import jieba import collections s="制作一个购票小程序,这个购票小程序可以根据客户曾经的购票历史" s+="和 ...
- java语言浅显理解
从厉害的c语言.到经久不衰的java语言.到不太火的安卓和IOS,到当下流行的python,这些都是软件开发中的一员. 之前在传智播客上的免费视频资源上,听了老师对java语言的介绍,感觉挺好了.今天 ...
- Vue-cli的配置知识
Vue-cli有两个文件--build和config:build文件包含了脚手架在开发环境和生产环境下webpack该如何配置.config文件则包含了build文件下webpack具体配置的值.换句 ...
- File文件的读写操作RandomAccessFile类
1.Java提供了一个对文件随机访问的操作,访问包括读和写操作,该类名是RandomAccessFile,该类的读写是基于指针的操作. 2.RandomAccessFile在堆文件进行随机访问操作时有 ...
- 解决MyEclipse注册失败的问题
https://jingyan.baidu.com/article/acf728fd49519ff8e410a361.html
- Tiny4412之按键驱动
一:按键驱动 按键驱动跟之前的LED,蜂鸣器的方法类似:通过底板,核心板我们可以看到按键的电路图: 通过电路图我们可以看出,当按键按下去为低电平,松开为高电平:所以我们要检测XEINT26的状态,通过 ...
- vue入坑教程(一)
1.脚手架搭配webpack的安装 (1)需要检查自己的电脑有没有安装node和npm 如果没有安装可以参考官网,以及安装的步骤 官方中文网地址:http://nodejs.cn/ (2)下载webp ...
- 破解跳过QQ群验证--真实有效哦。
说明:此教程可以实现强行加入别人的群,无需群主或管理员同意.来自于吾爱破解.跟着做了下,应该不用什么技术含量,因为啥也不懂的我也做到了最后.哈哈! 附上软件:https://pan.baidu.com ...