谁能帮我知道这是否有可能做到。我在任何地方都找不到想做的例子。基本上,我有一个主脚本和导入到主脚本中的多个下标。我有日志记录设置,以将每个模块记录到其自己的文件中。但是,这两个下标都使用了请求模块。是否可以将请求调试消息记录到使用它的脚本文件中?这是脚本示例。
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')
但是,这会捕获来自两个脚本的请求并将它们放置在同一文件中。我想区分请求的使用位置。
如果可能的话,我很想看看怎么做。
谢谢!