簡體   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