问题描述
我正在尝试将 Python 中的系统输出发送到两个不同的日志。 但是,尽管我已经指定了两个具有自己的日志记录级别的不同文件,但这两个输出会转到同一个文件。 但是,如果我只调用其中之一,日志错误会正确重定向输出。
class StreamToLogger(object):
def __init__(self,logger,log_level=logging.INFO):
self.logger = logger
self.log_level = log_level
self.linebuf = ''
def write(self,buf):
for line in buf.rstrip().splitlines():
self.logger.log(self.log_level,line.rstrip())
def flush(self):
pass
def launch_logger(filename,level):
if level == 'INFO':
logging.basicConfig(level=logging.INFO,format='%(asctime)s:%(levelname)s:%(name)s:%(message)s',filename=filename,filemode='a')
global stdout_logger
stdout_logger = logging.getLogger('STDOUT')
sys.stdout = StreamToLogger(stdout_logger,logging.INFO)
else:
logging.basicConfig(level=logging.ERROR,filemode='a')
global stderr_logger
stderr_logger = logging.getLogger('STDERR')
sys.stderr = StreamToLogger(stderr_logger,logging.ERROR)
launch_logger('logs/manager_info.log','INFO')
launch_logger('logs/manager_error.log','ERROR')
print('loggers initialised')
任何关于为什么会发生这种情况的线索? 谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)