记录django中的格式化程序

时间:2012-05-22 21:40:53

标签: python django logging

Django documentation开始,以下是日志记录的示例格式:

'formatters': {
    'verbose': {
        'format': '%(levelname)s %(asctime)s %(module)s: %(message)s'
    }
}

这打印如下:

  

ERROR 2012-05-22 14:33:07,261 views 42892 4398727168 hello

是否有可以包含在字符串格式中的项目列表?例如,我希望能够看到创建消息的功能和应用程序,例如:

  

错误时间myproject.myapp.views.login_function消息

3 个答案:

答案 0 :(得分:29)

来自Python logging module documentation

  • asctime %(asctime)s
    创建LogRecord时的人工可读时间。默认情况下,格式为'2003-07-08 16:49:45,896'(逗号后面的数字是毫秒的部分时间)。

  • 已创建%(created)f
    创建LogRecord的时间(由time.time()返回)。

  • 文件名%(filename)s
    路径名的文件名部分。

  • funcName %(funcName)s
    包含日志记录调用的函数名称。

  • 级别名称%(levelname)s 消息的文本记录级别('DEBUG','INFO','WARNING','ERROR','CRITICAL')。

  • levelno %(levelno)s
    消息的数字日志记录级别(DEBUG,INFO,WARNING,ERROR,CRITICAL)。

  • lineno %(lineno)d
    发出日志记录调用的源行号(如果可用)。

  • 模块%(module)s
    模块(文件名的名称部分)。

  • msecs %(msecs)d
    <{3>}创建时的毫秒部分。

  • 消息%(message)s
    记录的消息,计算为msg % args。这是在调用LogRecord时设置的。

  • 名称%(name)s
    用于记录呼叫的记录器的名称。

  • 路径名%(pathname)s
    发出日志记录调用的源文件的完整路径名(如果可用)。

  • 流程%(process)d
    进程ID(如果有)。

  • processName %(processName)s
    流程名称(如果有)。

  • relativeCreated %(relativeCreated)d
    创建Formatter.format()时的时间(以毫秒为单位),相对于记录模块的加载时间。

  • 主题%(thread)d
    线程ID(如果有)。

  • threadName %(threadName)s
    线程名称(如果有)。

LogRecord也可以使用以下参数,但它们并不打算包含在格式字符串中:

  • <强> ARGS
    参数元组合并为 msg 以生成消息。

  • <强> exc_info
    例外元组(àlaFormatter.format()),或者,如果没有例外,None

  • <强> MSG
    原始日志记录调用中传递的格式字符串。与 args 合并以生成消息或任意对象(请参阅sys.exc_info)。

答案 1 :(得分:9)

答案 2 :(得分:2)

步骤1。编辑settings.py文件

$ cd mysite
$ vim mysite/settings.py
'formatters': {
    'simple': {
        'format': '%(levelname)s %(asctime)s %(name)s.%(funcName)s:%(lineno)s- %(message)s'
    },
},

第二步。您应该在编码中使用logger,如下所示:

import logging
logger = logging.getLogger(__name__)

def fn1() {
    logger.info('great!')
    logger.info(__name__)
}

希望能帮到你!