gpt4 book ai didi

python-3.x - 在每个日志语句中添加一个字符串

转载 作者:行者123 更新时间:2023-12-05 06:22:56 27 4
gpt4 key购买 nike

根据 REST 请求,我将获得一个需要添加到所有日志语句中的 ID。

我知道一种方法是将字符串添加到每个日志语句中,如下所示

logging.info('{} References invoked {}'.format(_id, refs))

但是,想知道是否有任何简单的方法可以将 _id 烘焙到每个日志语句。

最佳答案

在Real python的好 friend 的帮助下,我能够解决这个问题。

import sys
import logging


def get_id_logger():
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - '
'%(levelname)-8s - '
'[%(filename)s:%(lineno)d] - '
'{_id} - '
'%(message)s '.
format(_id=locals().get('_id', '')))
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger


def set_logger_id(logger, _id):
logger_format = '%(asctime)s - ' \
'%(levelname)-8s - ' \
'[%(filename)s:%(lineno)d] - ' \
'{_id} - ' \
'%(message)s '.\
format(_id=locals().get('_id', ''))
new_formatter = logging.Formatter(logger_format)
handlers = logger.handlers
for h in handlers:
h.setFormatter(new_formatter)

测试脚本.py:

from logger import get_id_logger, set_logger_id

logger = get_id_logger()
logger.debug('Lets test something without req_id')


req_id = 9870
set_logger_id(logger, req_id)

logger.info('Lets test something with req_id')
logger.info('Lets test something with req_id again')
logger.info('Lets test something with req_id again')

req_id = 3456
set_logger_id(logger, req_id)
logger.info('Lets test something with req_id again')
logger.debug('Lets test something with req_id again')

关于python-3.x - 在每个日志语句中添加一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58819179/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com