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

CoreWebApi集成Exceptionless

代码: 两处   见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();
}
}

配置文件: 固定格式  在对应环境的配置文件中配置

CoreWebApi集成Exceptionless

格式:

"Exceptionless": {

    "ApiKey": "qBkC0YAL0YkjOhHsdvdgasdfsIwywAs48UK9KWZh",

    "ServerUrl": "http://****** "

  }

ApiKey需替换

ApiKey是在系统中添加项目时生成的码。

CoreWebApi集成Exceptionless

三、查看错误日志

1、登录系统后主要用前三个模块。首页仪表盘包含其他两个的功能。

2、开发测试过程中可以优先查看Most Frequent频次最高的错误进行修改。解决完的错误可以删除掉,省得碍事。

3、上线运维时常用Most Recent 最近发生的。

CoreWebApi集成Exceptionless

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

CoreWebApi集成Exceptionless

CoreWebApi集成Exceptionless

上一篇:Burosuite抓包Sqlmap学习Sql注入


下一篇:Centos下安装git的web服务器