Как насчет просто обернуть код обработчика в функцию:
import os
def myLogger(name):
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler(os.path.join('/some/path/', name + '.log'), 'w')
logger.addHandler(handler)
return logger
log_hm = myLogger('healthmonitor')
log_hm.info("Testing Log") # Should log to /some/path/healthmonitor.log
Чтобы предотвратить создание дублирующих обработчиков, необходимо позаботиться о том, чтобы myLogger(name)
вызывался только один раз за name
. Обычно это означает помещать myLogger(name)
внутрь
if __name__ == '__main__':
log_hm = myLogger('healthmonitor')
основного скрипта.