djang中的日志格式化程序

2024-05-20 07:16:47 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

ERROR time myproject.myapp.views.login_function message


Tags: djangoformat示例messageverbosedocumentation格式记录
3条回答

来自Python logging module documentation

  • asctime%(asctime)s
    创建^{}时的人类可读时间。默认情况下,格式为“2003-07-08 16:49:45896”(逗号后的数字是时间的毫秒部分)。

  • 已创建%(created)f
    创建^{}的时间(由^{}返回)。

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

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

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

  • 级别号:%(levelno)s
    消息的数字日志记录级别(调试、信息、警告、错误、严重)。

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

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

  • 毫秒:%(msecs)d
    创建^{}时的毫秒部分。

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

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

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

  • 过程%(process)d
    进程ID(如果可用)。

  • 进程名%(processName)s
    进程名(如果可用)。

  • 相对减少%(relativeCreated)d
    创建^{}时相对于加载日志模块的时间(毫秒)。

  • 线程%(thread)d
    线程ID(如果可用)。

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

以下参数也可用于^{},尽管它们不打算包含在格式字符串中:

  • 参数
    参数元组合并到msg中以生成消息。

  • exc_信息
    异常元组(la^{}),或者,如果没有发生异常,None

  • 消息
    原始日志记录调用中传递的格式字符串。与args合并以生成消息或任意对象(请参见Using arbitrary objects as messages)。

第一步。编辑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__)
}

希望对你有帮助!

相关问题 更多 >