...
/Implement Logging in API Using Application Insights
Implement Logging in API Using Application Insights
Learn to perform logging using application insights and Python.
We'll cover the following...
Implement logging in our API
We have already set up the Application Insights resource and installed the required package to connect to the service for logging the data. Now, let’s make some changes in the code to do the logging operation.
We will log three things:
- The text
- The sentiment of the overall text
- The key phrases from the overall text
Let us see the code now.
from fastapi import FastAPI from pydantic import BaseModel import logging from opencensus.ext.azure.log_exporter import AzureLogHandler import utils app = FastAPI() logger = logging.getLogger(__name__) logger.setLevel(10) # logger.addHandler(AzureLogHandler(connection_string='InstrumentationKey=<YOUR_KEY>')) headers = { "Ocp-Apim-Subscription-Key": "e16626ed2cfd4d87ae51fffbee899079", "Content-Type": "application/json", "Accept": "application/json" } class Model(BaseModel): text_to_analyze: list @ app.post("/") def analyze_text(text: Model): response = {"sentiment": [], "keyphrases": []} no_of_text = len(text.text_to_analyze) tasks = [] for i in range(no_of_text): document = {"documents": [ {"id": i+1, "language": "en", "text": text.text_to_analyze[i]}]} sentiment = utils.call_text_analytics_api( headers, document, endpoint='sentiment') keyphrases = utils.call_text_analytics_api( headers, document, endpoint='keyPhrases') log_data = { "custom_dimensions": { "text": text.text_to_analyze[i], "text_sentiment": sentiment["documents"][0]["sentiment"], "text_keyphrases": keyphrases["documents"][0]["keyPhrases"] } } logger.info('Text Processed Succesfully', extra=log_data) response["sentiment"].append(sentiment["documents"][0]) response["keyphrases"].append(keyphrases["documents"][0]) return response
Logging using application insights
Explanation ...