Practice
1. What is the main purpose of using
logger.error() with exc_info=True in a FastAPI application?easy
Solution
Step 1: Understand the role of
This method logs error messages in the application logs.logger.error()Step 2: Explain the effect of
This argument adds the full exception traceback to the log, helping with debugging.exc_info=TrueFinal Answer:
To log detailed error information including the stack trace -> Option BQuick Check:
Logging errors with traceback = A [OK]
Hint: Remember: exc_info=True shows full error details [OK]
Common Mistakes:
- Thinking logger.error() restarts the server
- Confusing error logging with notifications
- Assuming exc_info=True disables logging
2. Which of the following is the correct way to log an error with exception info in FastAPI using Python's logging module?
easy
Solution
Step 1: Review the logging.error() method signature
The method accepts a message string and optional keyword arguments like exc_info.Step 2: Identify the correct usage to include exception info
Using exc_info=True includes the traceback in the log output.Final Answer:
logger.error("Error occurred", exc_info=True) -> Option DQuick Check:
Use exc_info=True to log exceptions [OK]
Hint: Use exc_info=True inside logger.error() for full error trace [OK]
Common Mistakes:
- Omitting exc_info argument
- Passing exc_info as a positional argument
- Using non-existent argument 'exception=True'
3. Given this FastAPI error logging code snippet, what will be the output in the logs?
try:
1 / 0
except Exception as e:
logger.error("Division failed", exc_info=True)medium
Solution
Step 1: Analyze the try-except block
The code attempts division by zero, which raises ZeroDivisionError caught by except.Step 2: Understand logger.error with exc_info=True
It logs the message plus the full traceback of the caught exception.Final Answer:
Logs the message 'Division failed' with a ZeroDivisionError traceback -> Option CQuick Check:
exc_info=True logs error trace [OK]
Hint: exc_info=True logs full error trace, not just message [OK]
Common Mistakes:
- Thinking the error stops the program
- Assuming no traceback is logged
- Believing the log is empty on exception
4. You wrote this FastAPI error logging code but no error details appear in logs:
try:
open('missing_file.txt')
except Exception:
logger.error("File open failed")
What is the main fix to log the error details?medium
Solution
Step 1: Identify missing error detail logging
The current logger.error call logs only the message without exception info.Step 2: Add exc_info=True to include traceback
Passing exc_info=True logs the full exception details automatically.Final Answer:
Add exc_info=True to logger.error call -> Option AQuick Check:
Include exc_info=True to log error details [OK]
Hint: Always add exc_info=True to log exceptions fully [OK]
Common Mistakes:
- Changing exception type without logging fix
- Using logger.info which is lower severity
- Removing try-except causing crashes
5. You want to log errors in a FastAPI app only when an exception occurs, including the traceback, but avoid logging if no error happens. Which code snippet correctly implements this?
hard
Solution
Step 1: Ensure error logging happens only on exceptions
Logging must be inside except block to avoid logging when no error occurs.Step 2: Include exc_info=True to log traceback
Passing exc_info=True ensures full error details are logged.Final Answer:
try: risky_operation() except Exception as e: logger.error("Operation failed", exc_info=True) -> Option AQuick Check:
Log errors with traceback only on exceptions [OK]
Hint: Log errors inside except with exc_info=True [OK]
Common Mistakes:
- Logging errors outside try-except block
- Omitting exc_info=True losing traceback
- Logging without exception object
