在django logging中使用str.format()

时间:2013-11-16 13:03:02

标签: python django string logging format

我在Ubuntu 12.04中使用django 1.6和python 3.2。我发现django logging正在使用python的内置日志记录模块。正如dictConfig format(python 3.x version)所说,我可以在设置日志格式化程序时使用3种格式样式( django使用dictConfig format(python 2.x version)作为文档时,%-formatting,{} -formatting和$() - 格式化。

那么我可以在django日志记录中使用不同类型的格式吗?

像:

{
    'format':"{levelname} - {asctime} - {module} - {process} - {thread} - {message}"
}

而不是

{
    'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
}

在django 1.6?

1 个答案:

答案 0 :(得分:2)

您应该能够这样做,因为您可以控制您使用的格式化程序。只需在dict中指定一个合适的style值,该值定义格式化程序参数,例如

{
    "format": "{levelname} - {asctime} - {module} - {message}",
    "style": "{",
}

更新:对于Python 3.2,您需要使用此dict指定格式化程序:

{
    '()': logging.Formatter,
    'format': '{levelname} - {asctime} - {module} - {message}',
    'style': '{',
},

在Python 3.3或更高版本中,不需要'()': logging.Formatter行。