python 日志
日志输出
输出路径
可以输出控制台,可以输出文件,也可以发送邮件
日志等级
DEBUG:详细的信息,通常只出现在诊断问题上
INFO:确认一切按预期运行
WARNING:一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来
(如:磁盘空间低”),这个软件还能按预期工作
ERROR:更严重的问题,软件没能执行一些功能
CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行
输出到控制台
import logging
logging.basicConfig(level=logging.WARNING,
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
输出到文件
logging.basicConfig(level=logging.WARNING,
filename='./logs.txt',
filemode='w',
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
使用logging记录
# 开始使用log功能 logging.info('info message') logging.debug('debug message') logging.warning('这warning message') logging.error('error message') logging.critical('critical message')
自定义日志输出方式
步骤
获取logger,为logger设置lever,getlogger(返回loggger)
创建hander,FileHandler(文件名,mode输出模式,返回文件handler),StreamHandler(返回控制台handler)
创建Formater,Formatter(
%(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: 打印日志信息
)
定义输出格式,(handler obj).setFormater()
添加handler,(logger obj).addHandler()
import logging # 第一步,创建一个logger logger = logging.getLogger() logger.setLevel(logging.INFO) # Log等级总开关 # 第二步,创建一个handler,用于写入日志文件 logfile = './logs.txt' fh = logging.FileHandler(logfile, mode='a') # open的打开模式这里可以进行参考 fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关 # 第三步,再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.setLevel(logging.WARNING) # 输出到console的log等级的开关 # 第四步,定义handler的输出格式 formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - % (levelname)s: % (message)s") fh.setFormatter(formatter) ch.setFormatter(formatter) # 第五步,将logger添加到handler里面 logger.addHandler(fh) logger.addHandler(ch) # 日志 logger.debug('这是 logger debug message') logger.info('这是 logger info message') logger.warning('这是 logger warning message') logger.error('这是 logger error message') logger.critical('这是 logger critical message')
邮件输出
以后补

浙公网安备 33010602011771号