繁体   English   中英

如何在Azure Functions V2中登录Azure应用程序日志?

[英]How to log to azure app logs in Azure Functions V2?

Azure网络应用程序以及Azure功能扩展允许按照“诊断日志”配置部分中的配置向blob存储发送日志消息。

但是,传递给C#Functions(v2)实现的默认ILogger实例会忽略该设置。 相反,您似乎需要手动构建记录器才能使用此功能,如下所示。 请注意,您需要从NuGet添加Microsoft.Extensions.Logging.AzureAppServices来编译它。

[FunctionName("myfun")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequest req, 
    ILogger log)
{
    log.LogInformation("This does not end up in the app log.");

    var factory = new LoggerFactory().AddAzureWebAppDiagnostics();

    var log2 = factory.CreateLogger("MyFun");
    log2.LogInformation("This *does* end up in the app log, if configured.");
    log2.LogError("Fake error for testing logging functionality (2)");
}

我的问题:是否有更优雅的方式来获取写入已配置的App Log blob存储的记录器? 我原以为传递给函数的log已经具备了这个功能(可能是通过观察配置了应用程序日志来触发),但是默认情况下还没有,我没有看到如何添加的明确路径它既不是通过配置,也不是用其他东西替换ILogger log参数。

对于Azure Function V2,您可以使用注入的ILogger将所有日志记录为应用程序洞察,然后您可以从azure portal> Application Insights>转到功能应用程序,然后选择Analytics(日志)>然后您可以使用此查询来检索所有日志日志:

    traces
    where appName == "YourAppName"

对于旧函数V2,您可以使用注入的traceWriter并将其与任何记录器集成,以便您可以在与此Function应用程序相关的自动创建的blob存储表中找到日志,并且可以使用Microsoft Azure Storage Explorer轻松检查它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM