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

问题描述 投票:2回答:2

我正在使用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)。

azure azure-functions
2个回答
3
投票

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

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

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


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

© www.soinside.com 2019 - 2024. All rights reserved.