Мне нужно создать единый журнал, который можно использовать в моем пакете python, но некоторые функции реализуют многопроцессорность. Я хочу, чтобы все эти функции записывались в один и тот же файл журнала, как и все остальное.Использование журнала с модулем многопроцессорности
Я знаю, что в Python 3.2+ есть встроенный способ сделать это, но мне нужно также вернуть порт в Python 2.7.x.
Есть ли какой-либо код, который хорошо работает как с многопроцессорными, так и с многопроцессорными функциями для ведения журнала?
Обычно, я хотел бы создать журнал, как, например:
module = sys.modules['__main__'].__file__
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
format='%(name)s (%(levelname)s): %(message)s')
log = logging.getLogger(module)
fh = RotatingFileHandler(arguments.o, mode='a', maxBytes=2*1024*1024,
backupCount=2, encoding=None, delay=0)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - % (message)s')
fh.setFormatter(formatter)
fh.setLevel(logging.DEBUG)
log.addHandler(fh)
Тогда результат будет писать в один файл. Он отлично работает, но когда я это реализую, этот код создаст несколько файлов, которых я не хочу.
Любые идеи?
Спасибо
Вы помещаете этот код в обычный 'if __name__ == '__main __':' условный? Помните, что ** все **, которые не являются импортом или функцией/классом, должны идти туда при использовании «многопроцессорности». – Bakuriu
@Bakuriu - Я делаю создание журнала на уровне модуля, потому что это для пакета python. –