stream_handler=logging.StreamHandler() 1. 3. 设置StreamHandler的编码 为了解决中文编码问题,我们需要设置StreamHandler的编码为'utf-8'。 stream_handler.setEncoding('utf-8') 1. 4. 设置日志处理器 将创建的StreamHandler添加到日志处理器中,并设置日志级别和日志格式。 logger=logging.getLogger('my_logger')log...
2. 指定输出编码 你可以在创建StreamHandler时,使用带编码的StreamWriter。 importloggingimportsysimportio# 设置字符编码sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')# 创建Loggerlogger=logging.getLogger('my_logger')logger.setLevel(logging.DEBUG)# 创建Handlerhandler=logging.StreamHandler()# ...
'w',encoding='utf-8')#设置输出渠道的日志等级fh.setLevel(fh_level)#绑定输出渠道到日志收集器log.addHandler(fh)#设置日志输出渠道到控制台sh=logging.StreamHandler()
fh= logging.FileHandler(path,encoding='utf-8') fh.setLevel(logging.DEBUG) fh.setFormatter(formatter) logger.addHandler(fh)#console logformatter = logging.Formatter('%(message)s') ch=logging.StreamHandler(sys.stdout) ch.setLevel(logging.DEBUG) ch.setFormatter(formatter) logger.addHandler(ch)if__...
console_handler=logging.StreamHandler(stream=sys.stdout)console_handler.setFormatter(formatter)console_handler.setLevel(logging.DEBUG)# info 日志打印到文件info_log_file_handler=handlers.TimedRotatingFileHandler(filename=os.path.join(log_dir,info_log_name),when="midnight",backupCount=15,encoding="utf-8...
{"level":"DEBUG","class":"logging.StreamHandler","formatter":"sample"},"server_file":{"level":"DEBUG","class":"logging.handlers.TimedRotatingFileHandler","formatter":"sample","filename":"server.log","when":"D","interval":1,"backupCount":30,"encoding":"utf-8"},"client_file":{"...
parent.setLevel(logging.INFO) parent.addHandler(logging.StreamHandler()) child = logging.getLogger("parent.child") child.info("msg") 输出 msg 这里我没有给child设置日志等级,他会从父记录器查找日志级别,所以child也可以输出info级别的日志。关于记录器的继承关系可以参考第一篇文章 ...
(logging.Logger):""" LogHandler """def__init__(self,name,level=DEBUG,stream=True,file=True):self.name=name self.level=level logging.Logger.__init__(self,self.name,level=level)ifstream:self.__setStreamHandler__()iffile:self.__setFileHandler__()def__setFileHandler__(self,level=None)...
formatter=logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s','%Y-%m-%d %H:%M:%S')# 再创建一个handler,用于输出到控制台 console=logging.StreamHandler()console.setFormatter(formatter)logger.addHandler(console)console.setLevel(logging.NOTSET)if__name__=="__main__":MyLog.debug("...
在logging模块中有许多日志处理器类,我们只需要在pycharm中输入logging.Handler就能弹出最基本的几个日志处理类。 而上文所用到的StreamHandler则是流处理器,日志将随着系统标准输入、输出流展示,而我们的PyCharm终端、控制台等显示的信息就属于系统标准输出流。