一、logging模块
logging是python内置模块,不用下载,使用直接import就行
1.简单演示
import logging
logging.debug("孤灯小楼听夜雨") # 本行不显示
logging.info("呦呦鹿鸣") # 本行不显示
logging.warning("醉后不知天在水,满船清梦压星河。") # 输出到终端
# logging默认消息级别是warning,所以debug,info不显示
logging消息级,从低到高:
debug、info、 warning、error、critical
2.将日志输出到文件
import logging
# 日志输出格式自定义
_output = "%(asctime)s %(name)s:%(levelname)s:%(message)s"
# 日志输出位置, 不写输出到终端
_filename = "./data/example.log"
# 输出模式,默认是追加,修改为每次重写"w"
_mode = "w"
# 设置时间输出格式
_date = '%Y/%m/%d %I:%M:%S %p'
# 设置事件级别
_level = logging.DEBUG
logging.basicConfig(
filename=_filename ,
level=_level ,
filemode=_mode,
format=_output,
datefmt=_date
)
# 都输出到文件中
logging.debug("输出到日志文件。")
logging.info("呦呦鹿鸣")
logging.warning("醉后不知天在水,满船清梦压星河。")
二、格式
# 默认格式
logging.warning("醉后不知天在水,满船清梦压星河。")
%(name)s:Logger的名字,并非用户名,详细查看
%(levelno)s:数字形式的日志级别
%(levelname)s:文本形式的日志级别
%(pathname)s:调用日志输出函数的模块的完整路径名,可能没有
%(filename)s:调用日志输出函数的模块的文件名
%(module)s:调用日志输出函数的模块名
%(funcName)s:调用日志输出函数的函数名
%(lineno)d:调用日志输出函数的语句所在的代码行
%(created)f:当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d:输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s:字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。到毫秒
%(thread)d:线程ID。可能没有
%(threadName)s:线程名。可能没有
%(process)d:进程ID。可能没有
%(message)s:用户输出的消息