Python3.5 控制台日志输出,区分标准输出与错误输出
2018-01-24 11:40
513 查看
import logging import sys class ConsoleHandler(logging.Handler): terminator = '\n' def __init__(self, level=logging.NOTSET): super().__init__(level) def _flush(self, stream): self.acquire() try: if stream and hasattr(stream, 'flush'): stream.flush() finally: self.release() def emit(self, record): try: msg = self.format(record) stream = sys.stderr if record.levelname == 'ERROR'else sys.stdout stream.write(msg) stream.write(self.terminator) self._flush(stream) except BaseException as ex: record.msg = record.getMessage() + ' WriteLogException:' + str(ex) self.handleError(record) if __name__ == "__main__": _logger = logging.root _logger.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s') _console_handler = ConsoleHandler(logging.INFO) _console_handler.setFormatter(formatter) _logger.addHandler(_console_handler) logging.info('info') logging.error('error')
相关文章推荐
- Python第十天 print >> f,和fd.write()的区别 stdout的buffer 标准输入 标准输出 从控制台重定向到文件 标准错误 重定向 输出流和输入流 捕获sys.exit()调用
- Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志
- Python同时向控制台和文件输出日志logging的方法 Python logging模块详解
- 002_012 Python 将二进制数据发送到windows标准输出,即打印二进制到控制台
- Python+Selenium进行UI自动化测试项目中,常用的小技巧4:日志打印,longging模块(控制台和文件同时输出)
- MyBatis 最常见错误,启动时控制台无限输出日志
- MyBatis 最常见错误,启动时控制台无限输出日志
- 控制台标准输出以及控制台错误是不同的
- Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志
- MyBatis 最常见错误,启动时控制台无限输出日志
- Python重定向标准输入、标准输出和标准错误
- python标准输出 标准错误 重定向
- 转【Python】同时向控制台和文件输出日志logging
- 标准输出stdout、标准错误stderr 分类: python python基础学习 2013-06-17 18:08 308人阅读 评论(0) 收藏
- Python同时向控制台和文件输出日志logging的方法
- python 以标准输出(sys.stdout)为例,看python的标准输入、标准错误输出
- Python同时向控制台和文件输出日志logging的方法
- python输出日志到控制台和文件
- python的标准输入,输出,错误输出。
- MyBatis 最常见错误,启动时控制台无限输出日志