Python регистрация с использованием модулей - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть несколько модулей, которые вызываются основным скриптом. Каждый из них регистрирует сообщения с помощью встроенного пакета 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 имя сценария и имя функции.

Кто-нибудь знает, как справиться с этой ситуацией?

1 Ответ

0 голосов
/ 28 апреля 2020

Я не знаю, является ли это 100% лучшим решением или наверняка, будет ли оно работать в вашей ситуации, но я использовал его для чего-то похожего (уровни многословной печати, которые сохранялись бы в нескольких сценариях).

Создайте файл Python с именем, скажем, sessionid. Внутри этого, определите настройку верхнего уровня с именем id. Чтобы установить свой идентификатор, import sessionid и sessionid.id = 'some_id'. Затем имейте также свой config файл импорта sessionid и используйте sessionid.id по мере необходимости.

Мне потребовалось немного времени, чтобы понять, что я должен был получить к нему доступ таким образом; изменение его с помощью from sessionid import id; id = 'some_id' сохраняется только в скрипте, который делает это.

Имеет смысл поместить переменную id в ваш файл config, но только если вам не нужно устанавливать ее в том же сценарии, что также необходимо from config import logging.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...