Azure / Azure/azure-functions-python-worker

logging.exception does not create entry in exceptions table

Abierto
#866 9 comentarios 2 reacciones 1 asignado Asignado a @EvanR-Dev Ver en GitHub
area:python-functions needs-investigation
Lenguaje dominante
Python
Estrellas
357
Forks
116
Merge medio
32 min
PR fusionados (30 d)
1

Descripción

When logging.exception("Simple Exception") then it should show up in the `exceptions` table in App Insights. It only shows up when it is explicitly raised.

If we want to show 403,404 as an "exception from the app's point of view" and correlate with requests etc currently the app insights will only show failures that explicitly raised an exception. If a valid HttpResponse is sent with 403, it will be shown as successful request because the function executed successfully. But from the app's point of view, if it needs a simple correlation between requests/traces and exceptions, the workaround is to use logging.exception and assign it a error for ease of querying.

But the logging.exception when used outside of a try/catch context in Python functions does not log the exception inside `exceptions` table in app insights.

Here is a sample code that can be used to test this:

`
def main(req: func.HttpRequest, context: func.Context) -> func.HttpResponse:
logging.exception("Before exception logging")
try:
raise ValueError("Oops. something went wrong")
except ValueError as err:
logger.exception("Simple exception logging:" + str(err))
#raise #HTTP 500 kill -> failed.
`

In this sample "Before exception logging" statement does not show up in the exceptions table
traces
| where message contains "Before"

exceptions
| where message contains "Before"

Overall this would have been an easier stopgap method to correlate exceptions in Python as it does not have a provision to override the custom telemetry model offered by App Insights.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.