Is there a better mousetrap?
I think there are multiple ways of doing this, but I wouldn't put the conditional in there... I'm almost positive that the only things written to the "private" log that you reference are done because they meet the logging level threshold of threaddebug (Jay posted somewhere the value of it, I can't find it off hand). Instead of using those helper functions, you can use the generic .log() call for sending messages. It requires passing in the level as the first argument.
SO, if you have a variable that is already storing the logging level set by the user, just pass that in to the log function. If you want to log super-debug stuff only sometimes, set the variable to a value that won't be caught by the thread debug level. When the enhanced logging is turned on by the user, simply update that class/global/whatever variable and when the .log() gets called it will magically match and be logged.
At least, that is my understanding -- Jay or other Python experts can jump in if I got any of that wrong.
Adam