I would like to log a message whenever any of my functions are called, which contains the name of the function, its arguments, and a run duration (by checking Date objects when the function begins and ends). I've been looking up wrappers and decorators on the Internet, but I'm not quite sure how to adapt what I've found to the Roll20 scripting environment. With my scripts all being of the form: const Handouts = (() => { const SCRIPTNAME = "Handouts" const checkInstall = () => { /* code */ }, regHandlers = () => { /* code */ } return { RegisterEventHandlers: regHandlers , CheckInstall: checkInstall } })() on ( "ready" , () => { Handouts . RegisterEventHandlers () Handouts . CheckInstall () }) ... containing both constant values and functions, is there a way to iterate through all of the functions and wrap them with something that logs the information I want? (Maybe using _.mapObject() over the return variable?) Being able to trace the path my code takes through all of my functions, and the time each function takes to run, would be incredibly helpful to pinning down a few annoying inefficiencies I've detected! Thanks for any help you can provide!