У меня есть функция Azure v2 с триггером HTTP. Иногда он возвращает 500 без дополнительной информации. Я хотел бы настроить его для регистрации более подробной информации, включая сообщение об ошибке и трассировку стека.
Я попытался настроить свой host.json так:
{
"version": "2.0",
"logging": {
"logLevel": {
"default": "Trace"
}
}
}
, но это не привело к более подробной информации при локальном запуске.
Из-за встроенных настроек ведения журнала мне кажется, что я не могу, я пытаюсь получить верхний уровень try/catch
, но не могу понять, как вернуть и код состояния 500 и объект исключения.
[FunctionName("Http-UploadFiles")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "uploadFiles")] HttpRequest request,
ILogger log)
{
try
{
var requestBody = await new StreamReader(request.Body).ReadToEndAsync();
var body = JsonConvert.DeserializeObject<JObject>(requestBody);
var inventorySetGuid = Guid.Parse(body["inventorySetGuid"].ToString());
var files = body["files"].Select(FileComponentUtilities.GetFile).ToList();
var componentsAndErrors = await FileComponentUtilities.InsertSuitableComponentFiles(files, inventorySetGuid);
return new JsonResult(componentsAndErrors, StorageFramework.Storage.SerializerSettings);
}
catch (Exception exception)
{
return new StatusCodeResult(500);
}
}
Этот код возвращает код состояния 500, но не возвращает объект исключения. Я не могу найти подходящий IActionResult
для возврата 500 с объектом исключения. Как я могу сделать это для этой функции Azure v2?