python的日志记录非常简单,短短几行代码就能实现日志记录,注释比较清楚了,不详细解释了。
Python代码
#encoding: utf-8
import logging
#获取日志对象,可以带名字,不带名字返回root Logger
logger = logging.getLogger()
#定义一个文件句柄
file=logging.FileHandler("log.txt")
logger.addHandler(file)
#定义格式器,时间,日志级别,消息
formatter=logging.Formatter("%(asctime)s %(levelname)s %(message)s")
file.setFormatter(formatter)
#设置为记录任何日志,logging提供多种级别的日志信息,如:NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL等
logger.setLevel(logging.NOTSET)
for i in range(0,10):
logger.info(str(i))
import logging
#获取日志对象,可以带名字,不带名字返回root Logger
logger = logging.getLogger()
#定义一个文件句柄
file=logging.FileHandler("log.txt")
logger.addHandler(file)
#定义格式器,时间,日志级别,消息
formatter=logging.Formatter("%(asctime)s %(levelname)s %(message)s")
file.setFormatter(formatter)
#设置为记录任何日志,logging提供多种级别的日志信息,如:NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL等
logger.setLevel(logging.NOTSET)
for i in range(0,10):
logger.info(str(i))
关于formatter的配置,采用的是%(<dict key>)s的形式,就是字典的关键字替换。提供的关键字包括:
Format | Description |
---|---|
%(name)s | Name of the logger (logging channel). |
%(levelno)s | Numeric logging level for the message (DEBUG, INFO, WARNING, ERROR, CRITICAL). |
%(levelname)s | Text logging level for the message ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'). |
%(pathname)s | Full pathname of the source file where the logging call was issued (if available). |
%(filename)s | Filename portion of pathname. |
%(module)s | Module (name portion of filename). |
%(funcName)s | Name of function containing the logging call. |
%(lineno)d | Source line number where the logging call was issued (if available). |
%(created)f | Time when the LogRecord was created (as returned by time.time()). |
%(relativeCreated)d | Time in milliseconds when the LogRecord was created, relative to the time the logging module was loaded. |
%(asctime)s | Human-readable time when the LogRecord was created. By default this is of the form “2003-07-08 16:49:45,896” (the numbers after the comma are millisecond portion of the time). |
%(msecs)d | Millisecond portion of the time when the LogRecord was created. |
%(thread)d | Thread ID (if available). |
%(threadName)s | Thread name (if available). |
%(process)d | Process ID (if available). |
%(message)s | The logged message, computed as msg % args. |