Запись субмодуля в отдельный файл - PullRequest
0 голосов
/ 09 марта 2020

Может ли кто-нибудь помочь мне узнать, возможно ли это сделать? Я нигде не могу найти пример того, что я хочу сделать. В основном у меня есть основной сценарий и несколько подписок, которые я импортирую в основной сценарий. У меня есть настройки входа для регистрации каждого модуля в свой файл. Однако оба подписчика используют модуль запросов. Можно ли записать запросы отладочных сообщений в файл скрипта, который его использовал? Вот примеры сценариев.

script1.py

import logging
import requests

log = logging.getLogger(__name__)

def test():
    log.debug('this is script 1')
    r = requests.get('https://www.stackoverflow.com')

script2.py

import logging
import requests

log = logging.getLogger(__name__)

def test2():
    log.debug('This is script2')
    r = requests.get('https://www.google.com')

main.py

import logging, logging.handlers
import script1
import script2


logging.basicConfig(level=logging.DEBUG)
log = logging.getLogger()

script1log = logging.getLogger('script1')
script1log.propagate = False
script2log = logging.getLogger('script2')
script2log.propagate = False

def setup_logging(filename):    
    filelog = logging.handlers.TimedRotatingFileHandler(filename+'.log',
                    when='midnight', interval=1, backupCount=3)
    fileformatter = logging.Formatter('%(asctime)s %(name)-15s %(levelname)-8s %(message)s')
    filelog.setFormatter(fileformatter)
    return filelog

log.addHandler(setup_logging('main'))
script1log.addHandler(setup_logging('script1'))
script2log.addHandler(setup_logging('script2'))

if __name__ == '__main__':
    setup_logging('main')
    log.debug('this is main')

    script1.test()
    script2.test2()

Я знаю Я могу получить весь запрос, выполнив что-то вроде

requests_log = logging.getLogger('requests.packages.urllib3')

, однако это захватывает запрос из обоих сценариев и помещает их в один файл. Я хотел бы выделить guish, где использовались запросы.

Если это возможно, я хотел бы посмотреть, как это сделать.

Спасибо!

...