Practice
1. What is the main purpose of logging in a Flask application running in production?
easy
Solution
Step 1: Understand logging purpose
Logging records events and errors to help developers understand app behavior.Step 2: Identify production needs
In production, logs help find and fix issues without stopping the app.Final Answer:
To record app activity and errors for troubleshooting -> Option BQuick Check:
Logging = record activity/errors [OK]
Hint: Logging tracks errors and events in production apps [OK]
Common Mistakes:
- Thinking logging speeds up the app
- Confusing logging with security features
- Assuming logging changes UI
2. Which of the following is the correct way to configure logging to write to a file named
app.log with level WARNING in Flask?easy
Solution
Step 1: Recall logging setup syntax
Use logging.basicConfig() with filename and level parameters.Step 2: Check each option
Only logging.basicConfig(filename='app.log', level=logging.WARNING) uses correct function and parameters.Final Answer:
logging.basicConfig(filename='app.log', level=logging.WARNING) -> Option AQuick Check:
basicConfig sets file and level [OK]
Hint: Use logging.basicConfig() to set file and level [OK]
Common Mistakes:
- Using wrong function names like setup or fileConfig
- Passing level as string instead of logging constant
- Trying to configure app.logger directly
3. Given this Flask route code, what will be logged when a user visits
/hello?
import logging
from flask import Flask
app = Flask(__name__)
logging.basicConfig(filename='app.log', level=logging.INFO)
@app.route('/hello')
def hello():
app.logger.info('Hello route accessed')
return 'Hello!'medium
Solution
Step 1: Check logging configuration
logging.basicConfig sets INFO level and file 'app.log'.Step 2: Analyze app.logger usage
app.logger.info writes an INFO level log with given message.Final Answer:
A log entry with message 'Hello route accessed' at INFO level -> Option AQuick Check:
app.logger.info logs message at INFO [OK]
Hint: app.logger.info writes INFO logs if level allows [OK]
Common Mistakes:
- Assuming app.logger needs extra setup beyond basicConfig
- Confusing log levels INFO and WARNING
- Thinking format is mandatory for logging
4. You set up logging in Flask with
logging.basicConfig(filename='app.log', level=logging.ERROR) but notice that INFO logs still appear in app.log. What is the likely cause?medium
Solution
Step 1: Understand basicConfig behavior
basicConfig only works if root logger has no handlers yet.Step 2: Identify cause of wrong log levels
If root logger was configured earlier, basicConfig call is ignored, so level stays lower.Final Answer:
The root logger level was set before basicConfig and overrides it -> Option DQuick Check:
Previous root logger config blocks basicConfig [OK]
Hint: basicConfig ignored if root logger already configured [OK]
Common Mistakes:
- Believing basicConfig cannot set levels
- Thinking app.logger ignores levels
- Assuming file permission causes wrong logs
5. You want to log errors and warnings to a file
error.log and info messages to info.log in your Flask app. Which setup correctly achieves this?hard
Solution
Step 1: Understand multiple log files need multiple handlers
One handler per file with its own level filters logs accordingly.Step 2: Check options for multiple handlers
Use two handlers: one FileHandler for error.log with level WARNING, another for info.log with level INFO, added to app.logger correctly uses two FileHandlers with different levels added to app.logger.Final Answer:
Use two handlers: one FileHandler for error.log with level WARNING, another for info.log with level INFO, added to app.logger -> Option CQuick Check:
Multiple handlers = multiple log files [OK]
Hint: Use multiple handlers for different log files and levels [OK]
Common Mistakes:
- Calling basicConfig multiple times (only first works)
- Logging all levels to one file without filtering
- Using print instead of logging for production
