Exceptionless应用--自定义插件
Posted dudd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Exceptionless应用--自定义插件相关的知识,希望对你有一定的参考价值。
遇到的问题/需求
这里会把一些敏感的参数记录下来,我们需要屏蔽掉,如图
我们希望日志里面有当前登录用户的信息,如图:
处理方法
tip:这里用的是.net非.net core
第一个问题(屏蔽敏感参数):
ExceptionlessClient.Default.Configuration.AddDataExclusions("Password", "password", "Token", "token");
第二个问题(添加扩展信息)
直接看代码/注释吧
public class ExceptionlessConfig
{
public static void Configure()
{
//添加自定义插件
ExceptionlessClient.Default.Configuration.AddPlugin<ExceptionlessUserPlugin>();
//ExceptionlessClient.Default.Configuration.AddDataExclusions("Password", "password", "Token", "token");
}
/// <summary>
/// 日志添加用户信息
/// </summary>
public class ExceptionlessUserPlugin : IEventPlugin
{
public void Run(EventPluginContext context)
{
IJsonSerializer serializer = context.Client.Configuration.Resolver.GetJsonSerializer();
UserInfo userInfo = 获取当前登录用户信息;
//设置用户信息
AddUser(context, userInfo, serializer);
}
private static void AddUser(EventPluginContext context, UserInfo userInfo, IJsonSerializer serializer)
{
Exceptionless.Models.Data.UserInfo user = context.Event.GetUserIdentity(serializer);
if (user != null || userInfo == null)
return;
//设置当前登录用户信息
context.Event.SetUserIdentity(new Exceptionless.Models.Data.UserInfo
{
//用户ID
Identity = userInfo.UserId,
//用户所在公司名--用户名
Name = $"{userInfo.CompanyName}-{userInfo.UserName}",
//扩展信息
Data = new Exceptionless.Models.DataDictionary(new List<KeyValuePair<string, object>> {
new KeyValuePair<string, object>("公司ID", userInfo.CompanyId),
new KeyValuePair<string, object>("公司名称", userInfo.ComanyName)
})
});
}
}
}
当然需要在Global.cs
的Application_Start
方法中调用ExceptionlessConfig.Configure();
其他
context.Event
还有很多扩展,比如添加标签、添加属性...看需求了
over
以上是关于Exceptionless应用--自定义插件的主要内容,如果未能解决你的问题,请参考以下文章
Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片
Android 插件化VirtualApp 安装并启动资源中自带的 APK 插件 ( 添加依赖库 | 准备插件 APK | 启动插件引擎 | 拷贝 APK 插件 | 安装插件 | 启动插件 )(代码片