Python日志对象

时间:2010-09-10 19:53:35

标签: python logging

我正在尝试根据它的类重新格式化发送到记录器的输出数据。

例如:

  • 字符串将按原样打印
  • 字典/列表将自动缩进/美化为html
  • 我的自定义类将逐个处理并转换为html

我的问题是发送给格式化程序的消息总是一个字符串。该文档明确指出您可以将对象作为消息发送,但它似乎是在将对象格式化之前将对象转换为字符串。

class MyFormatter(logging.Formatter):

    def format(self, record):
        #The problem is that record.message is already a string...
        ...

我处理作为消息发送的对象的适当位置在哪里?

2 个答案:

答案 0 :(得分:4)

好的,我已经明白了。

官方文档中的文档有点不清楚,但基本上,有两个属性

LogRecord.message - >消息的字符串表示形式 和 LogRecord.msg - >消息本身。

要获取实际对象,必须引用.msg才能使其生效。

我希望这对其他人有用。

答案 1 :(得分:0)

也许在您正在记录的对象的__str__()方法中?