【问题标题】:Is there an easy way to log additional exception properties with standard .net core ILogger interface?是否有一种简单的方法可以使用标准 .net 核心 ILogger 接口记录其他异常属性?
【发布时间】:2019-05-22 23:32:45
【问题描述】:

这对任何自定义异常都有效,但在我的情况下,我使用 Refit 库连接到 3d 派对 API。

发生的情况是我在 Refit 中以 ApiException 的形式收到 401 Unauthorized 异常,这在开发人员异常页面和控制台日志记录中可见。

问题在于它确实是异常的附加属性,即在 Refit 的情况下为 Content,它可以为您提供关于为什么会发生这种情况的线索。

所以我想知道是否可以配置日志记录/开发人员异常页面以转储异常的所有自定义属性,而无需为其编写一些自定义代码。

我使用标准的ILogger 记录异常:

_logger.LogError(e, "An unknown error has happened");

【问题讨论】:

    标签: logging .net-core console


    【解决方案1】:

    你能不能只是扩展你在那里写的东西?

    _logger.LogError(e, $"An unknown error has happened: {e.Message}");
    

    还是我没抓住重点?

    【讨论】:

    • 是的,我可以这样做,但想象一下有多种不同类型的异常都有自己的属性,所以我只想“转储”它们。我可能可以使用 JsonSerialize 自己做
    • 我明白.. 如果您在网络上使用 Net Core,我会建议使用自定义中间件来处理它.. 但是从标签看来您使用的是控制台? .. 另一种选择,如果您的异常不喜欢更改可能是 ILogger 上的扩展方法?然后,您可以在每个扩展中进行自定义格式
    • 感谢您的帮助,我一直在寻找能够通过 ILogger 转储整个异常的开箱即用解决方案。我正在使用 asp.net,但它在 linux 上作为控制台应用程序运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 2011-02-11
    相关资源
    最近更新 更多