频道栏目
首页 > 程序开发 > 综合编程 > 其他综合 > 正文
在.NET Core中使用Exceptionless分布式日志收集框架
2019-01-25 10:31:02           
收藏   我要投稿

世界杯外围投注官网

一.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远程使用的教程。

三.注册账号并配置

  官网:https://exceptionless.com

  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> 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
    {
        /// 
        /// 跟踪
        /// 
        public void Trace(string message, params string[] tags)
        {
            ExceptionlessClient.Default.CreateLog(message, LogLevel.Trace).AddTags(tags).Submit();
        }
        /// 
        /// 调试
        /// 
        public void Debug(string message, params string[] tags)
        {
            ExceptionlessClient.Default.CreateLog(message, LogLevel.Debug).AddTags(tags).Submit();
        }
        /// 
        /// 信息
        /// 
        public void Info(string message, params string[] tags)
        {
            ExceptionlessClient.Default.CreateLog(message, LogLevel.Info).AddTags(tags).Submit();
        }
        /// 
        /// 警告
        /// 
        public void Warn(string message, params string[] tags)
        {
            ExceptionlessClient.Default.CreateLog(message, LogLevel.Warn).AddTags(tags).Submit();
        }
        /// 
        /// 错误
        /// 
        public void Error(string message, params string[] tags)
        {
            ExceptionlessClient.Default.CreateLog(message, LogLevel.Error).AddTags(tags).Submit();
        }
    }

总结:ExceptionLess功能非常强大,你看我都没怎么敲世界杯外围投注网站就搞定了这么炫酷的功能

点击复制链接 与好友分享!回本站首页
上一篇:winform最小化后重复进load事件原因
下一篇:Asp.Net Core 实现服务的批量注册注入
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站