У меня есть несколько модулей, которые вызываются основным скриптом. Каждый из них регистрирует сообщения с помощью встроенного пакета Python.
Как можно зарегистрировать идентификатор сеанса, установленный во время выполнения основного скрипта, во всех модулях, без необходимости pu sh эта переменная в каждом модуле?
Я настроил python файл конфигурации, называемый config, с:
import logging
logging.basicConfig(
level=logging.DEBUG,
format="%(filename)s:%(lineno)s|%(funcName)3s()|%(asctime)s|%(levelname)s|%(message)s",
handlers=[
logging.FileHandler("debug.log"),
logging.StreamHandler()
]
)
Другие модули используют этот предварительно сконфигурированный объект ведения журнала, через импорт, поэтому я использую это:
from config import logging
Но мне нужно зарегистрировать идентификатор из моего текущего сеанса, мой журнал должен выглядеть следующим образом:
module_name.py: 25 | function_name () | 2020-04-27 18: 28: 26,518 | INFO | Session_ID = abc123 | some_message_here
Я пытался поместить эту переменную в файл конфигурации, установите его, а затем используйте его в функции с именем «log_info» и «log_debug» в этом файле, но мой выходной журнал больше не отслеживает python имя сценария и имя функции.
Кто-нибудь знает, как справиться с этой ситуацией?