import logging __orig_getLogger=None def release_getLogger(name): ''' passing original handler with debug() method replaced to empty function ''' def dummy(*k, **kw): pass global __orig_getLogger log = __orig_getLogger(name) setattr(log, 'debug', dummy) return log def install_release_loggers(): ''' save original handler, install newer ''' global __orig_getLogger __orig_getLogger = logging.getLogger setattr(logging, 'getLogger', release_getLogger) def restore_getLogger(): ''' restore original handler ''' global __orig_getLogger if __orig_getLogger: setattr(logging, 'getLogger', __orig_getLogger) # sample code import logging logging.basicConfig(level=logging.DEBUG, format='%(name)s %(levelname)s> %(message)s', filename='./test.log', filemode='w') # start main program, install wrapper install_release_loggers() log = logging.getLogger('main') log.info('=== start ===') log.debug('hidden message ;)') log.info('info') log.error('mandatory error') """ Log will contain (without debug message): main INFO> === start === main INFO> info main ERROR> mandatory error """