Challenge: Logging Decorator
As you have seen in the previous chapter, logging is a practical and common use case for decorators in Python. By wrapping a function with a logging decorator, you can automatically record when the function is called, along with its arguments. This approach keeps your code tidy and avoids repetitive logging statements inside every function. Logging decorators are especially useful for debugging, monitoring, or auditing function usage in real-world applications.
Swipe to start coding
Write a decorator named log_calls that logs the function name and all arguments every time the decorated function is called. The decorator should print the function name followed by the positional and keyword arguments in a readable format. The original function should be called with the provided arguments, and its return value should be returned unchanged.
- The log should use the format:
Calling <function_name> with args=<args>, kwargs=<kwargs>. - The arguments should be shown as Python would display them (tuples and dicts).
- The decorator must not change the return value of the decorated function.
Solution
Thanks for your feedback!
single
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
Awesome!
Completion rate improved to 5.88
Challenge: Logging Decorator
Swipe to show menu
As you have seen in the previous chapter, logging is a practical and common use case for decorators in Python. By wrapping a function with a logging decorator, you can automatically record when the function is called, along with its arguments. This approach keeps your code tidy and avoids repetitive logging statements inside every function. Logging decorators are especially useful for debugging, monitoring, or auditing function usage in real-world applications.
Swipe to start coding
Write a decorator named log_calls that logs the function name and all arguments every time the decorated function is called. The decorator should print the function name followed by the positional and keyword arguments in a readable format. The original function should be called with the provided arguments, and its return value should be returned unchanged.
- The log should use the format:
Calling <function_name> with args=<args>, kwargs=<kwargs>. - The arguments should be shown as Python would display them (tuples and dicts).
- The decorator must not change the return value of the decorated function.
Solution
Thanks for your feedback!
single