# coding=utf-8 import logging import time import os import logging.handlers def logger(appname,rootstdout=True): log_fmt= "%(asctime)s --%(name)s [%(levelname)s]:\n%(message)s" c_fmt="%(asctime)s --%(name)s [%(levelname)s]:\n%(message)s" date_format = "%Y-%m-%d %H:%M:%S %a" #设置Console输出level logging.basicConfig(level=logging.DEBUG, format=c_fmt, datefmt=date_format, ) list_level=["Error","Info","Warning","Debug"] stamp = time.strftime("%Y%m%d", time.localtime())+".log" logsdir=os.path.join(os.getcwd(),"logs") if os.path.exists(logsdir): for p in list_level: if os.path.exists(os.path.join(logsdir,p)): pass else: os.mkdir(os.path.join(logsdir,p)) else: os.mkdir(logsdir) list_level=["Error","Info","Warning","Debug"] for p in list_level: print(os.path.join(logsdir,p)) os.mkdir(os.path.join(logsdir,p)) f_dict={} for i in list_level: filename=os.path.join(logsdir,i,stamp) f_dict[i]=filename logger= logging.getLogger(root) for k,v in f_dict.items(): handler=logging.handlers.RotatingFileHandler(filename=v, maxBytes=1024*1024*50, backupCount=5,encoding="utf-8",delay=False) h_fmt=logging.Formatter(log_fmt) handler.setFormatter(h_fmt) if k==list_level[0]: handler.setLevel(logging.ERROR) elif k==list_level[1]: handler.setLevel(logging.INFO) elif k== list_level[2]: handler.setLevel(logging.WARNING) else : handler.setLevel(logging.DEBUG) logger.addHandler(handler) logger.propagate = rootstdout return logger if __name__ == "__main__": logger=logger("root",rootstdout=True) while True: time.sleep(0.01) logger.info("file test",exc_info=True) logger.debug("bebug test") logger.error("error test") logger.warning("warning test") C:\Python37\python.exe C:/Users/Administrator/PycharmProjects/Supro/src/rotating_rewrite.py 2019-03-21 23:32:40 Thu --SshTest.class [INFO]: file test NoneType: None 2019-03-21 23:32:40 Thu --SshTest.class [DEBUG]: bebug test 2019-03-21 23:32:40 Thu --SshTest.class [ERROR]: error test 2019-03-21 23:32:40 Thu --SshTest.class [WARNING]: warning test 2019-03-21 23:32:40 Thu --SshTest.class [INFO]: file test NoneType: None 2019-03-21 23:32:40 Thu --SshTest.class [DEBUG]: