python之常用模块
Posted 辉辉辉辉a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之常用模块相关的知识,希望对你有一定的参考价值。
1.logging模块
1.1logging模块的级别
debug 调试
info 记录
warning 潜在危险
error 报错
critical 严重的
1.2在文件中输出日志
import logging logging.basicConfig(filename=‘log.test.log‘, level=logging.INFO,#只有比设定的等级高或者和设定的等级一样才会显示???? format=‘%(asctime)s%(message)s‘, datefmt=‘%yY-%m-%d%I:%M:%s%P‘) logging.info(‘My name is Gao hui‘) logging.debug(‘My name is hong yan‘) logging.warning(‘My name is Alex Li‘)
1.3在文件和屏幕中同时输出日志
import logging #1.生成logger对象 logger = logging.getLogger("gao")#创建日志对象 logger.setLevel(logging.INFO) #设置全局等级 #2.生成hanlder console = logging.StreamHandler()#日志以屏幕形式输出 console.setLevel(logging.WARNING)#设置屏幕等级 #text = logging.FileHandler("gao.log")#日志以文件格式输出 text.setLevel(logging.WARNING)#设置文件等级 #2.1把handle对象绑定到logger logger.addHandler(console) logger.addHandler(text) #3.生成formatter对象 console_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) file_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) console.setFormatter(console_formatter) text.setFormatter(file_formatter) logger.warning("test1") logger.info("test2")
1.4用filter过滤
import logging from logging import handlers class IgnoreBackupLogFilter(logging.Filter): ‘‘‘忽略带db backup的日志‘‘‘ def filter(self, record):#固定写法 return "db backup" in record.getMessage()#如果日志里有db backup,那就过滤,没有就显示日志 #1.生成logger对象 logger = logging.getLogger("gao")#创建日志对象 logger.setLevel(logging.INFO) #设置全局等级 #2.生成hanlder console = logging.StreamHandler()#日志以屏幕形式输出 console.setLevel(logging.WARNING)#设置屏幕等级 #text = logging.FileHandler("gao.log")#日志以文件格式输出 text.setLevel(logging.WARNING)#设置文件等级 #2.1把handle对象绑定到logger logger.addHandler(console) logger.addHandler(text) #3.生成formatter对象 console_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) file_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) console.setFormatter(console_formatter) text.setFormatter(file_formatter) logger.warning("test1") logger.info("test2") logging.warning("####")#如果xxxx里有db backup,那就过滤,没有就显示日志
1.5 RotatingFileHandler
当文件到达一定大小后,它会自动将当前日志文件改名,然后创建一个新的同名日志文件继续输出。当chat.log 达到指定的大小之后,RotatingFileHandler自动把文件改名为 chat.log.1。不过,如果chat.log1 重命名为 chat.log2, 最后重新创建 chat.log 继续输出日志情况。它的函数是:
RotatingFileHandler (filename [, mode[, maxBytes [, backupCount]]])
maxBytes用于制定日志文件的最大文件大小。如果maxbytes 为0,意味着日志文件可以无限大,这时上面描述的重命名过程就不会发生。
backCount 用于指定保留的备份文件的个数。比如:如果指定为2,但上面描述的重命名过程发生时,原有的 chat.log.2 并不会被更名,而是被删除。
import logging from logging import handlers #1.生成logger对象 logger = logging.getLogger("gao")#创建日志对象 logger.setLevel(logging.INFO) #设置全局等级 #2.生成hanlder console = logging.StreamHandler()#日志以屏幕形式输出 console.setLevel(logging.WARNING)#设置屏幕等级 text = handlers.RotatingFileHandler("gao.log",maxBytes=3,backupCount=6)#字节,log次数 text.setLevel(logging.WARNING)#设置文件等级 #2.1把handle对象绑定到logger logger.addHandler(console) logger.addHandler(text) #3.生成formatter对象 console_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) file_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) console.setFormatter(console_formatter) text.setFormatter(file_formatter) logger.warning("test1") logger.info("test2")
1.6 TimeRotatingFileHandler
通过时间间隔一定时间就自动创建新的日志文件。重命名的过程与RotatingFileHandler类似,不过新的文件不是附加数字,而是当前时间。它的函数是:
RotatingFileHandler (filename[, when [, interval [, backupCount]]
其中filename 参数和backupCount 参数和 RotatingFileHandler 具有相同的意义。
interval 是时间间隔
when 参数是一个字符串。表示时间间隔的单位,不区分大小写,它有以下取值:
S 秒
M 分
H 小时
D 天
W 每星期(interval = 0 时代表星期一)
midnight 每天凌晨
import logging from logging import handlers #1.生成logger对象 logger = logging.getLogger("gao")#创建日志对象 logger.setLevel(logging.INFO) #设置全局等级 #2.生成hanlder console = logging.StreamHandler()#日志以屏幕形式输出 console.setLevel(logging.WARNING)#设置屏幕等级 text = handlers.TimedRotatingFileHandler("gao.log", when="10", interval=5, backupCount=6) text.setLevel(logging.WARNING)#设置文件等级 #2.1把handle对象绑定到logger logger.addHandler(console) logger.addHandler(text) #3.生成formatter对象 console_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) file_formatter = logging.Formatter(‘%(name)s - %(asctime)s - %(module)s - %(levelname)s - %(message)s‘) console.setFormatter(console_formatter) text.setFormatter(file_formatter) logger.warning("test1") logger.info("test2")
以上是关于python之常用模块的主要内容,如果未能解决你的问题,请参考以下文章