15

来自Django 文档,这里是日志记录的示例格式:

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

这会打印出类似的内容:

错误 2012-05-22 14:33:07,261 意见 42892 4398727168 你好

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

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

4

3 回答 3

39

Python 日志记录模块文档

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

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

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

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

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

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

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

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

  • msecs:创建%(msecs)d
    时间的毫秒部分。LogRecord

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

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

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

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

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

  • relativeCreated:创建%(relativeCreated)d
    时间(以毫秒为单位LogRecord),相对于加载日志模块的时间。

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

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

以下参数也可用于Formatter.format(),尽管它们不打算包含在格式字符串中:

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

  • exc_info :
    异常元组 (à la sys.exc_info) 或者,如果没有发生异常,None.

  • msg
    在原始日志记录调用中传递的格式字符串。与args合并以生成消息或任意对象(请参阅将任意对象用作消息)。

于 2014-10-09T10:58:11.737 回答
10

http://docs.python.org/library/logging.html#logrecord-attributes

于 2012-05-22T21:41:39.410 回答
3

第1步。编辑你的 settings.py 文件

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

第2步。您应该像这样在编码中使用记录器:

import logging
logger = logging.getLogger(__name__)

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

希望对你有帮助!

于 2015-06-15T07:06:54.637 回答