Whenever you're ready, walk me through how you'd approach this.
Explain how Python decorators work under the hood, including what happens when a function is decorated, and then write a custom decorator that logs the execution time of a function.