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