# 日志 操作
import logging
import time
# 日志对象
logger = logging.getLogger()
# 'CRITICAL': CRITICAL,
# 'FATAL': FATAL,
# 'ERROR': ERROR,
# 'WARN': WARNING,
# 'WARNING': WARNING,
# 'INFO': INFO,
# 'DEBUG': DEBUG,
# 'NOTSET': NOTSET,
logger.setLevel(logging.WARNING)
# 日志对象可以有多个handler
# 创建一个handler 对象
handler = logging.FileHandler(filename="06_test.text", encoding="utf-8")
handler.setLevel(logging.DEBUG)
# 创建 一个 formatter 格式对象
# %(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)
# %(lineno)d Source line number where the logging call was issued
# (if available)
# %(funcName)s Function name
# %(created)f Time when the LogRecord was created (time.time()
# return value)
# %(asctime)s Textual time when the LogRecord was created
# %(msecs)d Millisecond portion of the creation time
# %(relativeCreated)d Time in milliseconds when the LogRecord was created,
# relative to the time the logging module was loaded
# (typically at application startup time)
# %(thread)d Thread ID (if available)
# %(threadName)s Thread name (if available)
# %(process)d Process ID (if available)
# %(message)s The result of record.getMessage(), computed just as
# the record is emitted
fmt = logging.Formatter('%(asctime)s, %(funcName)s, %(message)s')
handler.setFormatter(fmt)
logger.addHandler(handler)
def foo():
i = 0
while True:
logger.info("遇见你,这是一个错误")
time.sleep(1)
i += 1
if i > 20:
return
foo()