Bird
Raised Fist0
FastAPIframework~10 mins

Logging configuration in FastAPI - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the logging module in FastAPI.

FastAPI
import [1]
Drag options to blanks, or click blank then click option'
Asys
Bos
Cuvicorn
Dlogging
Attempts:
3 left
💡 Hint
Common Mistakes
Importing unrelated modules like os or sys.
Trying to import uvicorn instead of logging.
2fill in blank
medium

Complete the code to create a logger instance named 'app_logger'.

FastAPI
app_logger = logging.[1]('app_logger')
Drag options to blanks, or click blank then click option'
AbasicConfig
BgetLogger
CLogger
DsetLevel
Attempts:
3 left
💡 Hint
Common Mistakes
Using Logger class directly without instantiation.
Using basicConfig which is for configuration, not logger creation.
3fill in blank
hard

Fix the error in setting the logging level to INFO.

FastAPI
app_logger.setLevel(logging.[1])
Drag options to blanks, or click blank then click option'
Ainfo
BWarning
CINFO
Ddebug
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase 'info' which causes attribute error.
Using wrong case like 'Warning' instead of 'WARNING'.
4fill in blank
hard

Fill both blanks to configure logging format and level using basicConfig.

FastAPI
logging.basicConfig(format=[1], level=logging.[2])
Drag options to blanks, or click blank then click option'
A'%(asctime)s - %(levelname)s - %(message)s'
BDEBUG
CINFO
D'%(message)s - %(levelname)s'
Attempts:
3 left
💡 Hint
Common Mistakes
Using DEBUG level when INFO is required.
Using incomplete or incorrect format strings.
5fill in blank
hard

Fill all three blanks to create a logger, set level to WARNING, and log a warning message.

FastAPI
logger = logging.[1]('my_logger')
logger.setLevel(logging.[2])
logger.[3]('This is a warning!')
Drag options to blanks, or click blank then click option'
AgetLogger
BWARNING
Cwarning
Dinfo
Attempts:
3 left
💡 Hint
Common Mistakes
Using info() method instead of warning().
Setting level to lowercase or wrong level.

Practice

(1/5)
1. What is the main purpose of configuring logging in a FastAPI application?
easy
A. To track app activity and errors for easier debugging
B. To speed up the app's response time
C. To automatically update the app's dependencies
D. To create user interface themes

Solution

  1. Step 1: Understand logging purpose

    Logging records events and errors during app execution.
  2. Step 2: Connect to debugging

    Tracking these events helps developers find and fix issues.
  3. Final Answer:

    To track app activity and errors for easier debugging -> Option A
  4. Quick Check:

    Logging = Track activity/errors [OK]
Hint: Logging is for tracking events and errors [OK]
Common Mistakes:
  • Confusing logging with performance optimization
  • Thinking logging updates app code automatically
  • Mixing logging with UI design
2. Which of the following is the correct way to set up basic logging in a FastAPI app using Python's logging module?
easy
A. log.config(level=logging.DEBUG)
B. logging.setup(level='DEBUG')
C. logging.basicConfig(level=logging.DEBUG)
D. logging.start(level=logging.DEBUG)

Solution

  1. Step 1: Recall Python logging setup

    The standard method is logging.basicConfig() to configure logging.
  2. Step 2: Check syntax correctness

    logging.basicConfig(level=logging.DEBUG) correctly sets the log level.
  3. Final Answer:

    logging.basicConfig(level=logging.DEBUG) -> Option C
  4. Quick Check:

    Use basicConfig for logging setup [OK]
Hint: Use logging.basicConfig() to configure logging [OK]
Common Mistakes:
  • Using non-existent logging.setup() method
  • Misspelling logging as log
  • Using start() instead of basicConfig()
3. Given this FastAPI logging setup code:
import logging
logging.basicConfig(level=logging.WARNING)
logging.debug('Debug message')
logging.warning('Warning message')

What will be printed to the console?
medium
A. Warning message
B. Debug message
C. Debug message\nWarning message
D. No output

Solution

  1. Step 1: Understand logging levels

    Level WARNING means only WARNING and above are shown, DEBUG is lower level.
  2. Step 2: Check which messages print

    DEBUG message is ignored, WARNING message is printed.
  3. Final Answer:

    Warning message -> Option A
  4. Quick Check:

    Level WARNING shows warnings only [OK]
Hint: Only messages at or above set level print [OK]
Common Mistakes:
  • Expecting DEBUG messages to print at WARNING level
  • Thinking all messages print regardless of level
  • Confusing logging levels order
4. You wrote this code to configure logging:
import logging
logging.basicConfig(level='DEBUG')
logging.info('Info message')

But no output appears. What is the likely problem?
medium
A. You need to import sys module first
B. The level argument should be logging.DEBUG, not a string
C. basicConfig() must be called after logging.info()
D. logging.info() does not print messages

Solution

  1. Step 1: Check logging level argument type

    logging.basicConfig expects level as a constant like logging.DEBUG, not a string.
  2. Step 2: Understand effect of wrong level

    Passing 'DEBUG' string is ignored, default level WARNING applies, so info messages don't show.
  3. Final Answer:

    The level argument should be logging.DEBUG, not a string -> Option B
  4. Quick Check:

    Level must be logging.DEBUG constant [OK]
Hint: Use logging.DEBUG constant, not string 'DEBUG' [OK]
Common Mistakes:
  • Passing level as string instead of constant
  • Calling basicConfig after logging calls
  • Assuming info messages never print
5. You want to log messages to a file named app.log with level INFO and include timestamps. Which is the correct logging configuration code?
hard
A. logging.basicConfig(file='app.log', level='INFO', format='%(time)s - %(msg)s')
B. logging.basicConfig(filename='app.log', level=logging.DEBUG, format='%(message)s')
C. logging.setup(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s')
D. logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s')

Solution

  1. Step 1: Check correct parameter names

    logging.basicConfig uses filename, level, and format parameters correctly.
  2. Step 2: Verify format string and level

    Format '%(asctime)s - %(message)s' adds timestamp; level INFO matches requirement.
  3. Final Answer:

    logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(message)s') -> Option D
  4. Quick Check:

    Use filename, level=logging.INFO, correct format [OK]
Hint: Use filename and format with %(asctime)s for timestamps [OK]
Common Mistakes:
  • Using wrong parameter names like file instead of filename
  • Passing level as string instead of constant
  • Incorrect format placeholders
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard