【问题标题】:How to create custom Error logging using ExceptionSubscriber to log JWT errors如何使用 ExceptionSubscriber 创建自定义错误日志记录以记录 JWT 错误
【发布时间】:2022-02-05 02:26:40
【问题描述】:

我在记录 JWT 错误时遇到问题。目前,ABP 会以同样的方式记录所有 JWT 错误,我们想了解更多关于 JWT Token 获取数据失败的原因。

例如,这是一个索赔问题吗? Token是否过期?等等

这是一个代码示例:

    public class CustomExceptionSubscriber : ExceptionSubscriber
    {

    private readonly ILogger<CustomExceptionSubscriber> _logger;
    public CustomExceptionSubscriber(ILogger<CustomExceptionSubscriber> logger)
    {
        _logger = logger;
    } 

    public async override Task HandleAsync(ExceptionNotificationContext context)
    {
        try
        {
            _logger.LogInformation(context.Exception.Message);
            await Task.CompletedTask;
        }
        catch (AccessViolationException avEx)
        {
            _logger.LogInformation(avEx.Message);
        }
        catch (Exception ex)
        {
            _logger.LogInformation(ex.Message);
        }
    } 
}

【问题讨论】:

    标签: logging jwt abp exceptionsubscriber


    【解决方案1】:

    我能够通过捕获特定异常来解决问题

    public class CustomExceptionSubscriber : ExceptionSubscriber
    {
    
        private readonly ILogger<CustomExceptionSubscriber> _logger;
        public CustomExceptionSubscriber(ILogger<CustomExceptionSubscriber> logger)
        {
            _logger = logger;
        } 
    
        public async override Task HandleAsync(ExceptionNotificationContext context)
        {
            try
            {
                _logger.LogInformation(context.Exception.Message);
                await Task.CompletedTask;
            }
            catch (AccessViolationException avEx)
            {
                _logger.LogError($"A new Access Violation Exception has been thrown: {avEx}");
                _logger.LogInformation(avEx.Message);
            }
            catch (SecurityTokenValidationException e)
            {
                _logger.LogError($"A new Security Token Validation Exception has been thrown: {e}");
                _logger.LogInformation(e.Message);
            }
            catch (Exception ex)
            {
                _logger.LogInformation(ex.Message);
            }
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      相关资源
      最近更新 更多