Может ли кто-нибудь помочь мне узнать, возможно ли это сделать? Я нигде не могу найти пример того, что я хочу сделать. В основном у меня есть основной сценарий и несколько подписок, которые я импортирую в основной сценарий. У меня есть настройки входа для регистрации каждого модуля в свой файл. Однако оба подписчика используют модуль запросов. Можно ли записать запросы отладочных сообщений в файл скрипта, который его использовал? Вот примеры сценариев.
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, где использовались запросы.
Если это возможно, я хотел бы посмотреть, как это сделать.
Спасибо!