【问题标题】:Using ILogger in Azure durable function activity?在 Azure 持久函数活动中使用 ILogger?
【发布时间】:2019-09-01 00:19:41
【问题描述】:

我正在将 azure 函数用于表插入事件触发器,特别是持久函数,并且我正在尝试在我的活动函数中生成一些日志。

问题是活动函数没有收到任何“ILogger”,编排器也没有,因此我没有任何访问权限,也无法生成调试日志。

整体流程为:

HTTP 请求 => Duarble HTTP starter => 持久函数编排器 => 持久函数活动

有没有办法为从 ILogger 派生的某些类创建记录器实例?或者也许是一种将 ILogger 实例从 HTTP 启动器传递到活动函数的方法?

任何解决方案将不胜感激!

【问题讨论】:

    标签: c# azure azure-devops cloud azure-functions


    【解决方案1】:

    默认情况下,ILogger 实例会注入到您的函数中,除非您使用的是 DI

    您需要做的就是使用注入到您的函数中的ILogger。 示例:

    [FunctionName("Demo")]
    public async static Task RunOrchestrator(
        [OrchestrationTrigger] DurableOrchestrationContext context,
        ILogger log)
    {
        log.LogInformation("Starting Orchestration function");
    }
    

    如果您使用Dependency injection,您应该在启动时执行以下操作 builder.Services.AddLogging();

    更多信息:

    https://github.com/Azure/azure-functions-host/issues/4858

    https://github.com/Azure/azure-functions-host/issues/2720#issuecomment-503627355

    Microsoft Docs

    【讨论】:

    • 默认情况下 ILogger 不会注入到 Durable 活动函数中。 (在编排中却是这样),那么“builder.Services.AddLogging()”应该添加到哪里呢?
    • 为了使用builder.Services.AddLogging(),您需要添加Statup 类并将函数作为依赖注入一个
    • @HariHaran 我也为持久功能实现了 DI,但上​​面的行似乎不起作用。无法通过函数或构造函数注入 ILogger?有什么想法吗?
    • @BillyRayValentine 请提出更多错误信息的问题,我会检查出来。
    • 嗨@HariHaran,请在此处查看问题:stackoverflow.com/questions/58752340/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2021-09-24
    相关资源
    最近更新 更多