【发布时间】:2021-02-02 19:16:28
【问题描述】:
在 Azure 函数中,我可以添加日志,并按预期将其添加到函数日志中。下面是示例代码
[FunctionName("myfunction")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequestMessage req, ILogger log)
{
log.LogInformation("HTTP trigger function start"); // This works fine
MyClass class1 = new MyClass(); // this is from a class library referred in the function
class1.mymethod()
}
在 MyClass 方法中,我想以与在 azure 函数中相同的方式记录消息。我尝试在我的类库中创建一个 Ilogger 类型的新日志对象,并使用所需的消息调用 LogInformation 方法。但这不起作用,我在 Microsoft.Extensions.Logging.LoggerExtensions.Log 处收到类似“Value cannot be null. (Parameter 'logger')”的错误
那么我们需要如何在类库中创建新的记录器对象,以便它将消息记录到相同的 Azure 函数日志中。
【问题讨论】:
-
我不确定我是否理解您的问题。看起来您应该能够将
ILogger从您的 Azure 函数传递给您实例化的类。你有理由不能这样做吗? -
我认为不可能创建一个记录到“Azure 函数日志”的记录器。正如安迪所说,您必须传递
log对象。不是 C# 专家所以不知道,但 App Insights 也收集了 IIRC sysout 和 syserror。
标签: c# azure .net-core azure-functions