函数说明logging.debug(msg,*args,**kwargs)创建一条严重级别为DEBUG的日志记录logging.info(msg,*args,**kwargs)创建一条严重级别为INFO的日志记录logging.warning(msg,*args,**kwargs)创建一条严重级别为WARNING的日志记录logging.error(msg,*args,**kwargs)创建一条严重级别为ERROR的日志记录logging.critical(msg,*args,**kwargs)创建一条严重级别为CRITICAL的日志记录logging.log(level,*args,**kwargs)创建一条严重级别为level的日志记录logging.basicConfig(**kwargs)对rootlogger进行一次性配置其中logging.basicConfig(**kwargs)函数用于指定“要记录的日志级别”、“日志格式”、“日志输出位置”、“日志文件的打开模式”等信息,其他几个都是用于记录各个级别日志的函数。默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL>ERROR>WARNING>INFO>DEBUG)#首先设置日志的名称,并指定日志的级别#指定记录日志的路径,并设置记录日志的级别#指定输出在cmd窗口的对象,并设置显示级别#设置记录日志和显示窗口日志的格式#将记录日志和显示窗口日志的格式分别加入相应的对象#开始打印日志#窗口显示日志与颜色的混用,配合ctypes使用,在linux中,不存在windll模块,c相关的不清楚,欢迎留言解决importlogging,ctypes
classLogger():
def__init__(self,path,clevel=logging.DEBUG,flevel=logging.DEBUG):
self.logger=logging.getLogger(path)
self.logger.setLevel(logging.DEBUG)
fmt=logging.Formatter('[%(asctime)s][%(levelname)s]%(message)s','%Y-%m-%d%H:%M:%S')
#设置cmd日志
sh=logging.StreamHandler()
sh.setFormatter(fmt)
sh.setLevel(clevel)
#设置文件日志
fh=logging.FileHandler(path)
fh.setFormatter(fmt)
fh.setLevel(flevel)
#将设置好的加入logger对象
self.logger.addHandler(sh)
self.logger.addHandler(fh)
#设置窗口显示的错误级别的颜色
self.show_white=0x0007
self.show_blue=0x01
self.show_green=0x02
self.show_red=0x04
self.show_yellow=self.show_red|self.show_green
self.std_output_handles=-11
self.std_output_handle=ctypes.windll.kernel32.GetStdHandle(self.std_output_handles)
defdebug(self,message):
self.logger.debug(message)
definfo(self,message):
self.logger.info(message)
defwar(self,message):
color=self.show_yellow
self.set_color(color)
self.logger.warning(message)
deferror(self,message):
color=self.show_red
self.set_color(color)
self.logger.error(message)
defcri(self,message):
self.logger.critical(message)
defset_color(self,color):
handle=self.std_output_handle
bool=ctypes.windll.kernel32.SetConsoleTextAttribute(handle,color)
returnbool
if__name__=='__main__':
logyyx=Logger('/root/python_test/logs/alllog.log',logging.ERROR,logging.DEBUG)
logyyx.debug('一个debug信息')
logyyx.info('一个info信息')
logyyx.war('一个warning信息')
logyyx.error('一个error信息')
logyyx.cri('一个致命的critical信息')