异常日志框架Exceptionless结合.NET Core(本地部署)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 一、前言1、分布式异常日志收集框架Exceptionless是开源的工具,根据官方给出的说明: Exceptionless可以为您的ASP.NET、Web API、WebFrm、WPF、控制台和MVC应用程序提供实时错误、特性和日志报告。

一、前言


1、分布式异常日志收集框架Exceptionless是开源的工具,根据官方给出的说明: Exceptionless可以为您的ASP.NET、Web API、WebFrm、WPF、控制台和MVC应用程序提供实时错误、特性和日志报告。它将收集的信息组织成简单的可操作的数据,这些数据将帮助你很方便的查看异常信息。

2、Exceptionless提供两种使用方式,一种是 官网创建账号;一种是自己搭建本地项目。官网上创建账号的操作方式可以参考github上的官方wiki。此处主要介绍本地部署。

 

阅读目录

  • 前言
  • 环境要求
  • 部署Exceptionless
  • .NET Core结合Exceptionless
  • 总结

二、环境要求


根据Exceptionless 给出的环境要求如下:

测试环境:

  • 操作系统windows
  • .NET 4.6.1
  • JAVA JDK1.8+
  • IIS Express 7.5+(win7以上系统都没有问题)
  • Elasticsearch 5.x

 

生产环境:

  • 操作系统windows或Linux
  • .NET 4.7
  • JAVA JDK1.8+
  • IIS Express 7.5+(win7以上系统都没有问题)
  • Elasticsearch 5.x(部署在Linux上(强烈建议),并且是多节点运行)
  • Redis 3.0+(可选,部署在Linux上(强烈建议))

 

三、部署Exceptionless


1、配置JAVA JDK 1.8

说明:为什么需要安装JAVA JDK呢?由于es需要依赖此环境。

第一步:从官网上下载JDK  windows 包

地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

第二步:安装JDK后配置windows环境变量

设置系统变量添加java jdk的安装目录。

 

在用户变量中添加 JAVA_HOME的系统变量路径。

 

 

配置结束。查看JAVA是否安装成功。提示如下:即代表安装成功。

 

 2、部署Exceptionless

 Exceptionless 下载地址:https://github.com/exceptionless/Exceptionless/releases

 下载后解压出来:把wwwroot部署在IIS上

此处项目的端口可自己配置,默认是50000。

如需自己配置需要修改一下几个地方:

第一:修改web.config 中的BaseURL 中的端口。

第二:修改app.config.*.js文件中的 BASE_URL 端口。

第三:IIS上端口需要设置为自己的端口。

 

3、一键安装 es

双击打开 Start.bat,这将自动启动Elasticsearch,IIS Express和默认浏览器到Exceptionless登录页面。

注:如果出现错误,请确保java 环境安装完成。

 

安装结束当前目录下会出现es和kibana,以及自动打开 Exceptionless 项目

 

4、注册本地账号Exceptionless

第一步:注册账号

第二步:注册完后即可进入到主页面。创建一个组织和项目名(每个项目都有对应唯一的apikey)

第三步:选择项目多对应的类型。选择完后会出现对应的安装提示。

 

  

 

四、.NET Core结合Exceptionless


1、新建一个.NET Core项目

引入nuget包: 

 

2、配置appsettings.json

此处的ApiKey在 Exceptionless中所创建项目获取,正是根据这个我们才能把项目匹配到exceptionless中

"Exceptionless": {
    "ApiKey": "aW6nxAsLNE5JcFthRbjbh5Ot2iFk4MgrcZtC35Ut",
    "ServerUrl": "http://localhost:50000"
  }

 

3、配置Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            ExceptionlessClient.Default.Configuration.ApiKey = Configuration.GetSection("Exceptionless:ApiKey").Value;
            ExceptionlessClient.Default.Configuration.ServerUrl = Configuration.GetSection("Exceptionless:ServerUrl").Value;
            app.UseExceptionless();

            app.UseMvc();
        }

 

4、Controller 控制器添加测试代码异常

[Route("api/[controller]")]
    public class ValuesController : Controller
    {
        [HttpGet]
        public ActionResult Get()
        {
            try
            {
                throw new Exception("LouieGuo测试项目的异常");
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit(); //这个很重要
            }
            return Ok();
        }
    }

 

5、运行项目,然后打开Exceptionless Dashboard

可以看到 已经有错误信息显示了。

 

 

五、总结


此文配置只是测试,生产环境请使用自己部署的es和redis等。希望能帮助到你。

 

参考资料:

官网:https://exceptionless.com/

github:https://github.com/exceptionless/Exceptionless/wiki/Self-Hosting

KAnts:https://www.cnblogs.com/ants/p/8580890.html

依乐祝:https://www.cnblogs.com/yilezhu/p/9193723.html

uptothesky:http://www.cnblogs.com/uptothesky/p/5864863.html

 

asp.net core 交流群:787464275 欢迎加群交流
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【推荐】按钮精神支持,因为这种支持是我继续写作,分享的最大动力!

作者:LouieGuo
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!

微信公众号:欢迎关注                                                 QQ技术交流群: 欢迎加群

                

LouieGuo
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
19天前
|
网络协议 Java Apache
【Java】已解决java.net.HttpRetryException异常
【Java】已解决java.net.HttpRetryException异常
20 0
|
2天前
|
安全 Java API
为什么捕获异常后不要使用e.printStackTrace()打印日志
为什么捕获异常后不要使用e.printStackTrace()打印日志
|
13天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
49 5
|
18天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
29 4
|
19天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
【7月更文挑战第8天】这篇教程介绍了如何使用Logback将Java应用的日志输出到文件中。首先,通过创建`logback.xml`配置文件,设置`FileAppender`来指定日志文件路径和格式。然后,提供了一个`RollingFileAppender`的例子,用于每日生成新的日志文件并保留一定天数的历史记录。文中包含配置文件的XML代码示例,并展示了控制台输出和生成的日志文件内容。教程最后提到了一些可能遇到的问题及解决建议。
19 0
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
|
6天前
|
Java 程序员 Linux
如何使用日志框架记录日志
如何使用日志框架记录日志
|
8天前
|
监控
如何规范化异常抛出和日志使用以降低CDO报警噪音
如何规范化异常抛出和日志使用以降低CDO报警噪音
|
18天前
|
开发框架 .NET API
.NET Core 和 .NET 标准类库项目类型有什么区别?
在 Visual Studio 中,可创建三种类库:.NET Framework、.NET Standard 和 .NET Core。.NET Standard 是规范,确保跨.NET实现的API一致性,适用于代码共享。.NET Framework 用于特定技术,如旧版支持。.NET Core 库允许访问更多API但限制兼容性。选择取决于兼容性和所需API:需要广泛兼容性时用.NET Standard,需要更多API时用.NET Core。.NET Standard 替代了 PCL,促进多平台共享代码。
|
18天前
|
网络协议 Java 测试技术
【Java】已解决java.net.BindException异常
【Java】已解决java.net.BindException异常
17 0
|
18天前
|
Java 网络安全 网络架构
【Java】已解决java.net.ConnectException异常
【Java】已解决java.net.ConnectException异常
16 0