Я разрабатываю пакет, который будет использоваться другими для написания сценариев обработки.Для целей тестирования / отладки / недопущения сумасшествия я хотел бы включить в свой код некоторые операторы журналирования, и особенно использовать служебную функцию logging_setup()
, которую я разработал для другого проекта для управления форматированием / выводом файла.
Однако, поскольку я пишу не отдельное приложение, а библиотеку, которая должна вызываться другими программами, я запутался, когда мне нужно использовать мою утилиту logging_setup()
для получения желаемых результатов ведения журнала.что я хочу.Это заставило меня задуматься о том, было ли хорошей идеей начать с использования системы журналирования в моем пакете.
Где мне использовать мою logging_setup()
утилиту, если где-нибудь?
РЕДАКТИРОВАТЬ: Вот функцияЯ упоминаю выше:
def logging_setup(cfg_path=definitions.LOG_CONFIG_PATH, lvl=logging.INFO):
"""Setup logging tool from YAML configuration file.
This should only be run once. Formatted (or configured) logging can only be
done from within functions/classes in other modules.
"""
# create directory for log files if not already there
try:
os.makedirs(definitions.LOGS_PATH)
except OSError as e:
if e.errno != errno.EEXIST:
raise
# configure logging from yaml config file
if os.path.exists(cfg_path):
with open(cfg_path, 'rt') as f:
config = yaml.safe_load(f.read())
logging.config.dictConfig(config)
else:
logging.basicConfig(level=lvl)