Python: правильный способ входа в один и тот же файл из разных модулей

Я написал кучу скриптов в течение долгого времени, и я нахожусь в процессе переделки скриптов, чтобы сохранить код DRY. В настоящее время я использую что-то подобное в различных скриптах:

if __name__ == '__main__':
    logger = logging.getLogger('dbinit')
    hdlr = logging.FileHandler('/var/logs/tmp/foo.log')
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    hdlr.setFormatter(formatter)
    logger.addHandler(hdlr) 
    logger.setLevel(logging.WARNING)

Вместо того, чтобы повторять это в каждом скрипте (т.е.«модуль»), я хотел бы, чтобы эта инициализация регистратора была выполнена где-то и доступна для различных сценариев (хм, может быть, обернуть в одноэлементный класс?).

Если я не могу этого сделать (т.е. поместить код инициализации регистратора в один модуль ядра), я предполагаю, что при использовании того же имени файла журнала в вызове logging.FileHandler()различные скрипты будут писать в один и тот же файл.

Верно ли это предположение?

И последнее, но не менее важное: каков наилучший (например, Pythonic) способ решения этой проблемы?

10
задан Homunculus Reticulli 27 March 2012 в 21:49
поделиться