在每个日志语句中添加一个字符串

阿伦·尚卡

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

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

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

但是,我想知道是否有任何简便的方法可以将其烘焙_id到每个log语句中。

阿伦·尚卡

在Real python中的一个好朋友的帮助下,我得以解决了这个问题。

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)

test_script.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')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在子字符串的每个实例中添加一个字符

来自分类Dev

向每个元组添加一个字符串

来自分类Dev

向数组列表中的每个字符串添加一个字符

来自分类Dev

如何在列表中每个字符串的末尾添加一个字符?

来自分类Dev

向列表中的每个单独的字符串添加一个字符串

来自分类Dev

在打印语句中的多个格式化函数的末尾放置一个字符串

来自分类Dev

计算一个字符串在另一个字符串中每个字符的出现次数

来自分类Dev

如何在字符串中的每个单词之后添加一个字符?

来自分类Dev

创建一个字符串数组而不分配每个字符串

来自分类Dev

重复一组行(数据框),并向每个组添加一个字符串

来自分类Dev

golang在字符串之前添加一个字符串... interface {}

来自分类Dev

如何检查一个字符串变量中的每个字母?

来自分类Dev

在Rails的where子句中始终传递一个字符串

来自分类Dev

如何在SQL select语句中用另一个字符串值替换指定的字符串值?

来自分类Dev

在IF语句中将字符串分配给另一个字符串时出现问题

来自分类Dev

如何打印数组并向 Bash 中的每个项目添加一个字符串

来自分类Dev

为Python列表中的每个元素在4个字符之后添加一个字符串

来自分类Dev

返回字符串中每个单词的第一个字符

来自分类Dev

如何生成一个字符串中的每个字符之间的随机字符?

来自分类Dev

在文件的每一行中添加一个字符串,每个文件中添加的字符串增加1

来自分类Dev

在文件的每一行中添加一个字符串,每个文件中添加的字符串增加1

来自分类Dev

如果每个字符串中的第一个字符相同,则从数组中的每个字符串中删除第一个字符

来自分类Dev

在R中的一个gsub()或chartr()语句中替换多个字符串?

来自分类Dev

如何确定一个字符串是英语句子还是代码?

来自分类Dev

从函数** keywords为sql语句创建一个字符串

来自分类Dev

从Return语句获取数组,从中推导出一个字符串

来自分类Dev

如何声明构造内的最后一个字符串以if语句?

来自分类Dev

If语句-这是一个字符串吗?

来自分类Dev

从 C 中的 if 语句返回一个字符串

Related 相关文章

  1. 1

    在子字符串的每个实例中添加一个字符

  2. 2

    向每个元组添加一个字符串

  3. 3

    向数组列表中的每个字符串添加一个字符

  4. 4

    如何在列表中每个字符串的末尾添加一个字符?

  5. 5

    向列表中的每个单独的字符串添加一个字符串

  6. 6

    在打印语句中的多个格式化函数的末尾放置一个字符串

  7. 7

    计算一个字符串在另一个字符串中每个字符的出现次数

  8. 8

    如何在字符串中的每个单词之后添加一个字符?

  9. 9

    创建一个字符串数组而不分配每个字符串

  10. 10

    重复一组行(数据框),并向每个组添加一个字符串

  11. 11

    golang在字符串之前添加一个字符串... interface {}

  12. 12

    如何检查一个字符串变量中的每个字母?

  13. 13

    在Rails的where子句中始终传递一个字符串

  14. 14

    如何在SQL select语句中用另一个字符串值替换指定的字符串值?

  15. 15

    在IF语句中将字符串分配给另一个字符串时出现问题

  16. 16

    如何打印数组并向 Bash 中的每个项目添加一个字符串

  17. 17

    为Python列表中的每个元素在4个字符之后添加一个字符串

  18. 18

    返回字符串中每个单词的第一个字符

  19. 19

    如何生成一个字符串中的每个字符之间的随机字符?

  20. 20

    在文件的每一行中添加一个字符串,每个文件中添加的字符串增加1

  21. 21

    在文件的每一行中添加一个字符串,每个文件中添加的字符串增加1

  22. 22

    如果每个字符串中的第一个字符相同,则从数组中的每个字符串中删除第一个字符

  23. 23

    在R中的一个gsub()或chartr()语句中替换多个字符串?

  24. 24

    如何确定一个字符串是英语句子还是代码?

  25. 25

    从函数** keywords为sql语句创建一个字符串

  26. 26

    从Return语句获取数组,从中推导出一个字符串

  27. 27

    如何声明构造内的最后一个字符串以if语句?

  28. 28

    If语句-这是一个字符串吗?

  29. 29

    从 C 中的 if 语句返回一个字符串

热门标签

归档