我正在处理的应用程序使用日志记录模块来记录错误等。在这种情况下,能够在日志条目中包含HTTP referer,GET / POST参数等会很好。
虽然可以在调用.error()
等之前将其附加到消息中,但我正在寻找一种方法在中心位置执行此操作(当然不包括这些功能)。
答案 0 :(得分:1)
我从未尝试过,但我认为你可以通过FORMAT
指定logging.basicConfig
来实现。
来自logging
文档:
FORMAT = "%(asctime)-15s %(clientip)s %(user)-8s %(message)s" logging.basicConfig(format=FORMAT) d = {'clientip': '192.168.0.1', 'user': 'fbloggs'} logging.warning("Protocol problem: %s", "connection reset", extra=d)
会打印出类似的内容:
2006-02-08 22:20:02,165 192.168.0.1 fbloggs协议问题:连接重置
答案 1 :(得分:0)
我现在使用自定义格式化程序解决了它:
class IndicoMailFormatter(logging.Formatter):
def format(self, record):
s = super(IndicoMailFormatter, self).format(record)
return s + self._getRequestInfo()
def _getRequestInfo(self):
info = ['Additional information:']
# ...
return '\n\n%s' % '\n'.join(info)
可以使用logging.conf中的class
选项(或通过python代码)轻松设置此格式化程序。