解决方案直接上
sh = logging.StreamHandler()
logger.addHandler(sh)
StreamHandler
Streamhandler——包含在logging模块中的三个handler之一。
能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象(更确切点,就是能够支持write()和flush()方法的对象)。
只有一个参数:
class logging.StreamHandler(stream=None)
日志信息会输出到指定的stream中,如果stream为空则默认输出到sys.stderr。
import os
import logging
import logging.handlers
class Logger(object):
def __init__(self,
filename,
level=logging.INFO,
):
file_dir = os.path.split(filename)[0]
if not os.path.isdir(file_dir):
os.makedirs(file_dir)
self.logger = logging.getLogger(filename)
format_str = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
self.logger.setLevel(level)
sh = logging.StreamHandler()
sh.setFormatter(format_str)
th = logging.handlers.TimedRotatingFileHandler(filename=filename,
when='D',
interval=1,
backupCount=5,
encoding='utf-8'
)
th.suffix = "%Y-%m-%d.log"
th.setFormatter(format_str)
self.logger.addHandler(sh)
self.logger.addHandler(th)