是否有一种简单的方法可以在Python中创建日志记录,而不是发送消息,而只是发送属性列表?
据我了解,logger.info
和logger.debug
之类的方法只是用于在特定级别创建日志记录的方法。这些方法称为self._log
方法,其本身称为self.makeRecord
方法。
如果我想创建消息属性为none的记录,是否可以调用logger.makeRecord
,将None
传递给message并将属性字典传递给extra
关键字参数?还是我应该打电话给self._log
并传递这些参数?还是这些都不起作用?我是否也可以只将extra
传递给logger.info
方法?
如果可能的话,为什么不经常这样做呢?理想的工作流程似乎只有将属性传递到日志记录中,然后消息才会由格式化程序进行编译。
很抱歉这篇文章有这么多迷你问题。
答案 0 :(得分:0)
为什么不能格式化日志字符串以使用这些额外的参数? position = torch.arange(0.0, max_len).unsqueeze(1)
div_term = torch.exp(torch.arange(0.0, d_model, 2) * -(math.log(10000.0) / d_model))
kwarg明确为此目的。来自他们的docs:
extra
FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s'
logging.basicConfig(format=FORMAT)
d = {'clientip': '192.168.0.1', 'user': 'fbloggs'}
logger = logging.getLogger('tcpserver')
logger.warning('Protocol problem: %s', 'connection reset', extra=d)
# which prints this
2006-02-08 22:20:02,165 192.168.0.1 fbloggs Protocol problem: connection reset
用于kwarg映射,因此,如果您希望它为您构建字符串,则可以。 “消息”是有位置的,因此不能忽略它。但是,没有什么可以阻止您提供空字符串extra
作为''
位置arg