遇到的問題/需求
-
這里會把一些敏感的引數記錄下來,我們需要屏蔽掉,如圖

-
我們希望日志里面有當前登錄用戶的資訊,如圖:

處理方法
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 = https://www.cnblogs.com/dudd/p/new Exceptionless.Models.DataDictionary(new List> {
new KeyValuePair("公司ID", userInfo.CompanyId),
new KeyValuePair("公司名稱", userInfo.ComanyName)
})
});
}
}
}
當然需要在Global.cs的Application_Start方法中呼叫ExceptionlessConfig.Configure();
其他
context.Event還有很多擴展,比如添加標簽、添加屬性...看需求了
over
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/4460.html
標籤:ASP.NET
上一篇:淺談:分布式事務
