在记录日志时, 日志消息都会关联一个级别(“级别”本质上是一个非负整数)。系统默认提供了6个级别,它们分别是:
级别 |
对应的值 |
CRITICAL |
50 |
ERROR |
40 |
WARNING |
30 |
INFO |
20 |
DEBUG |
10 |
NOTSETT |
0 |
使用时可以给level参数设置日志级别,低于该级别的日志消息将会被忽略
filename :日志文件的保存路径。如果配置了此参数,将自动创建一个日志文件;
filemode :日志文件的打开模式。 默认值为’a’,表示日志消息以追加的形式添加到日志文件中。如果设为’w’, 那么每次程序启动的时候都会创建一个新的日志文件;
format :设置日志输出格式;
datefmt :定义日期格式;
level :设置日志的级别.对低于该级别的日志消息将被忽略;
stream :设置特定的流用于初始化StreamHandler;
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程ID
%(message)s: 打印日志信息
import logging
import datetime
# 得到现在的时间
now = datetime.datetime.now()
# YYYY-MM-DD日期格式
date_now = now.date()
file_name = '日志文件名_' + str(date_now) + '.log'
#设置文件编码格式,避免中文乱码
file = open(file_name, encoding="utf-8", mode="a")
logging.basicConfig(
stream=file,
#设定日志记录最低级别
level=logging.DEBUG,
datefmt='%Y/%m/%d %H:%M:%S',
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logging.info('普通日志记录')
logging.warning('告警日志记录')
logging.debug('调试日志记录')
file.close()
2020/02/23 21:45:58 - root - INFO - 普通日志记录
2020/02/23 21:45:58 - root - WARNING - 告警日志记录
2020/02/23 21:45:58 - root - DEBUG - 调试日志记录