如前所述,您可以使用 custom Filter
,unutbu
也可以使用LoggerAdapter
:
import logging
logger = logging.LoggerAdapter(logging.getLogger(__name__), {'MYVAR': 'Jabberwocky'})
FORMAT = '%(MYVAR)s %(asctime)s - %(levelname)s - %(message)s'
logging.basicConfig(format=FORMAT, datefmt='%d/%m/%Y %H:%M:%S')
logger.warning("'Twas brillig, and the slithy toves")
这使
Jabberwocky 25/04/2013 07:39:52 - 警告 - 'Twas brillig, and the slimy toves
或者,只需在每次调用时传递信息:
import logging
logger = logging.getLogger(__name__)
FORMAT = '%(MYVAR)s %(asctime)s - %(levelname)s - %(message)s'
logging.basicConfig(format=FORMAT, datefmt='%d/%m/%Y %H:%M:%S')
logger.warning("'Twas brillig, and the slithy toves", extra={'MYVAR': 'Jabberwocky'})
这给出了相同的结果。
由于 MYVAR 实际上是恒定的,因此该LoggerAdapter
方法所需的代码比Filter
您的情况下的方法少。