[英]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.