从 Azure 函数调用 ILogger.LogError 时,我可以输入什么 EventId?

What EventId can i put when calling ILogger.LogError from Azure functions?

我正在使用 ILogger 的注入实例而不是 TraceWritter。该实例是从 Azure 函数运行时注入的。我想记录捕获的异常。唯一可以接受 Exception 的 LogError 重载是来自 class LoggerExtensions:

的扩展方法
void LogError(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args)

问题是:此方法接收一个 EventId 作为第二个参数,从哪里我可以获取当前的 EventId 以在此处使用? (我想每个 AF 执行都有他唯一的 EventId)。

有一个仅接受字符串的重载:

void LogError(this ILogger logger, string message, params object[] args);

如果您需要 Exception 的重载,只需将 (EventId) 0 传递给它(其他重载就是这样做的)。

您可以像这样创建一个扩展方法:

using System;

namespace Microsoft.Extensions.Logging
{
    public static class LoggerExtensions
    {
        public static void LogError(this ILogger logger, Exception ex, string message = null, params object[] args)
        {
            logger.LogError(default(EventId), ex, message, args);
        }
    }
}

https://github.com/aspnet/Logging/issues/367#issuecomment-313805976