日志模块 logging
2019-09-25 本文已影响0人
魔曦帝天
basicConfig 函数用来配置 RootLogger
basicConfig 函数仅用来配置 RootLogger,rootLogger 是所有 Logger 的祖先 Logger,所以其他一切 Logger 会继承该 Logger
basicConfig 源码看,它可以有六个关键字参数
filename:执行使用该文件名为 rootLogger 创建 FileHandler,而不是 StreamHandler (将显示的日志放入该文件)
filemode:指定文件打开方式,默认是"a"
format:为 rootLogger 的 handler 指定输出格式
datefmt:指定输出的日期时间格式
level:设置 rootLogger 的日志级别
import logging
# 将日志写入当前目录的log.txt文件,设置为追加,设置级别为10,显示输出时间。
logging.basicConfig( filename = './log.txt', filemode = 'a', #stream = sys.stdout,
format = '%(levelnam
e)s:%(message)s', datefmt = '%m/%d/%Y %I:%M:%S', level = logging.DEBUG )
# 参数format
logging.basicConfig(format='%(asctime)s%(levelname)s:%(message)s',datefmt='%m/%d/%Y %I:%M:%S %p')
缺点 无法追踪脚本来源
模块级记录器
记录器对象上使用最广泛的方法分为两类:配置和消息发送。
import logging
# 生成logging对象, __name__监控者
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
# 设置的日志基本也可以是数字的形式
# logger.setLevel(10)
# 设置生成日志文件
fh = logging.FileHandler("access.log")
fh.setLevel(logging.INFO)
fh.setFormatter(formatter) #文件
# 创建日志输出格式
fmt = "%(asctime)s %(levelname)s %(filename)s %(lineno)d %(process)d %(message)s"
datefmt = "%a %d %b %Y %H:%M:%S"
formatter = logging.Formatter(fmt, datefmt)