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

时间:2017-08-04 13:30:38

标签: azure azure-functions

我使用ILogger的注入实例而不是TraceWritter。该实例是从Azure Function Runtime注入的。我想记录捕获的异常。可以接受Exception的唯一LogError重载是LoggerExtensions类的扩展方法:

void LogError(this ILogger logger, EventId eventId, Exception exception, string message, params object[] args)

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

2 个答案:

答案 0 :(得分:3)

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

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

如果您需要使用Exception重载,只需将(EventId) 0传递给它(这是其他重载所做的事情)。

答案 1 :(得分: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