我使用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。)
答案 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