从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消息
答案 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__)
}
希望能帮到你!