CoreWebApi集成Exceptionless
参考博客
https://www.cnblogs.com/akaxb/p/7207827.html
一、 Exceptionlessr的安装部署
依乐祝,《ASP.NET Core免费开源分布式日志收集框架Exceptionless安装配置以及简单实用》
花儿笑弯了腰,《Self Host 使用Exceptionless实时监控程序运行日志服务》
平凡网客,《Exceptionless 本地部署》
Edison Zhou 《基于Exceptionless实现分布式日志》
二、在项目(16安监webapi)中使用。
Nugget: WebApi项目引用包 Exceptionless.AspNetCore

代码: 两处 见28WebApi项目
1、StartUp类
//注意要把exceptionless的位置放最前面,之前放中间了,有个未知原因,就是记录不上异常。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseExceptionless(Configuration);
}
2、LogFilterAttribute
public class LogFilterAttribute : ActionFilterAttribute
{
public string RequestParametersString { get; set; }
/// <summary>
/// Action执行中
/// </summary>
/// <param name="actionExecutedContext"></param>
public override void OnActionExecuting(ActionExecutingContext actionExecutedContext)
{
RequestParametersString = actionExecutedContext.ActionArguments.ToJson();
} /// <summary>
/// Action执行后
/// </summary>
/// <param name="actionExecutedContext"></param>
public override void OnActionExecuted(ActionExecutedContext actionExecutedContext)
{
string url = GetAbsoluteUri(actionExecutedContext.HttpContext.Request);
if (actionExecutedContext.Exception == null)
{
string logInfo = $"request info:{DateTime.Now}(ㄒoㄒ){url}(ㄒoㄒ){RequestParametersString}(ㄒoㄒ)";
LogHelper.Write(logInfo, LogMessageEnum.Info);
}
else
{
string error = $"Exception:{DateTime.Now}(ㄒoㄒ){url}(ㄒoㄒ){RequestParametersString}(ㄒoㄒ){actionExecutedContext.Exception.Message}";
LogHelper.Write(error, LogMessageEnum.Error); //Exceptionless
actionExecutedContext.Exception.ToExceptionless().SetHttpContext(actionExecutedContext.HttpContext).SetMessage(RequestParametersString)
.Submit();
}
} private string GetAbsoluteUri(HttpRequest request)
{
return new StringBuilder()
.Append(request.Scheme)
.Append("://")
.Append(request.Host)
.Append(request.PathBase)
.Append(request.Path)
.ToString();
}
}
配置文件: 固定格式 在对应环境的配置文件中配置

格式:
"Exceptionless": {
"ApiKey": "qBkC0YAL0YkjOhHsdvdgasdfsIwywAs48UK9KWZh",
"ServerUrl": "http://****** "
}
ApiKey需替换
ApiKey是在系统中添加项目时生成的码。

三、查看错误日志
1、登录系统后主要用前三个模块。首页仪表盘包含其他两个的功能。
2、开发测试过程中可以优先查看Most Frequent频次最高的错误进行修改。解决完的错误可以删除掉,省得碍事。
3、上线运维时常用Most Recent 最近发生的。

4、我们将http请示参数等都会记录在错误信息中。便于调试。在点开错误信息时,也许参数过多,出现截断情况。此时可以点击request,ToggleView,查看所有信息。点击复制按钮将参数复制到记事本中简单编辑下即可。


CoreWebApi集成Exceptionless的更多相关文章
- Net Core集成Exceptionless分布式日志功能以及全局异常过滤
Net Core集成Exceptionless分布式日志功能以及全局异常过滤 相信很多朋友都看过我的上篇关于Exceptionless的简单入门教程[asp.Net Core免费开源分布式异常日志收集 ...
- .Net Core 集成ExceptionLess分布式日志框架之本地化部署
前言 公司目前使用的项目中关于日志记录这块,之前一直都是使用的Log4net 存放于后台文件中的,对于异常错误啊,或者需要查看一些详情错误的时候感觉很不方便,要到服务器上去打开日志文件检索错误,降低了 ...
- 基于.net core微服务(Consul、Ocelot、Docker、App.Metrics+InfluxDB+Grafana、Exceptionless、数据一致性、Jenkins)
1.微服务简介 一种架构模式,提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(RESTfu ...
- Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验
Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...
- 分享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服务开发框架
集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的微服务开发框架 Github源代码地址 htt ...
- 免费开源的 .NET 分布式组件库 Exceptionless Foundatio
前言 在互联网时代,分布式应用.系统变得越来越多,我们在使用 .Net 技术构建分布式系统的时候,需要使用到一些组件或者是助手库来帮助我们提高生产力以及应用程序解耦,但是纵观.Net圈,能够符合要求的 ...
- Exceptionless 本地部署
免费开源分布式系统日志收集框架 Exceptionless 前两天看到了这篇文章,亲身体会了下,确实不错,按照官方的文档试了试本地部署,折腾一番后终于成功,记下心得在此,不敢独享. 本地部署官方wik ...
- ExceptionLess 本地部署小结
ExceptionLess 是一个免费开源分布式系统日志收集框架,地址:https://github.com/exceptionless/Exceptionless 运行环境: .NET 4.6.1 ...
- 如何扩展分布式日志组件(Exceptionless)的Webhook事件通知类型?
写在前面 从上一篇博客高并发.低延迟之C#玩转CPU高速缓存(附示例)到现在又有几个月没写博客了,啥也不说,变得越来越懒了,懒惰产生了拖延后遗症. 最近一周升级了微服务项目使用的分布式日志组件Exce ...
随机推荐
- >>>>>>>> [ovs][libvirt] virt-xml ovs-vsctl
查看可用的参数: [root@vrouter1 tong]# virt-xml --add-device --network=? |grep source source source_mode sou ...
- [adminitrative][archlinux][setfont] 设置console的字体大小
电脑的分辨率高了之后,用命令行进入的时候,完全看不清楚,是否容易导致眼瞎. 第一步便把字体调大就成了很必要的操作. 使用一个命令能马上生效: setfont 使用配置文件 /etc/vconsole. ...
- delphi 把数据库图片的存取
procedure TForm1.Button1Click(Sender: TObject); // 插入图片过程 var Stream:TMemoryStream;begin try Stream ...
- TMS WEB Core v1.2预览版:新的Electron应用程序支持
2019年2月20日,星期三 几个月前,我们已经开始与Electron进行实验.在工作概念验证之后,我们的目标是为Delphi开发人员尽可能多地包装Electron API.但当然不仅仅是可以使用的E ...
- linux新增动态库后可执行程序找不到的问题
linux为了加快程式执行时对共享库的定位速度,避免使用搜索路径查找共享库的低效率,所以是直接读取库列表文档 /etc/ld.so.cache 从中进行搜索./etc/ld.so.cache 是个非文 ...
- 只读事务@Transactional(readOnly = true)
定义 从设置的时间点(时间点beta)开始到事务结束的过程中,该事务将看不见其他事务所提交的数据,即查询中不会出现别人在beta之后提交的数据. 应用场合 对于一个函数,如果执行的只是 ...
- php 关于时间函数
1. 设置时区 date_default_timezone_set() 和 putenv() 让时间安全地设置就,输入如下代码: date_default_timezone_set('UTC'); / ...
- Vue通过build打包后 打开index.html页面是空白的
最近在build打包vue项目遇到了几个问题,如下: 1.npm run build打包项目之后,我们通常是把dist文件里面被压缩后的static文件跟index.html提交到服务器,但最近发现直 ...
- CentOS 系列安装 Docker
CentOS6对于 CentOS6,可以使用 EPEL 库安装 Docker,命令如下$ sudo yum install http://mirrors.yun-idc.com/epel/6/i386 ...
- dedecms调用全站相关文章怎么设置
前面我们说了dedecms调用相关文章,但很多网友反映说调用的只是本栏目的相关文章,不是全站的相关文章,那么dedecms调用全站相关文章怎么设置呢?打开文件\include\taglib\likea ...