看了下TqApi的代码,是否可以考虑再其他地方有个总的log控制的方式,而不是每次创建实例的时候都会重新把log设成DEBUG级别
# 初始化 logger self._logger = logging.getLogger("TqApi") self._logger.setLevel(logging.DEBUG) if not self._logger.handlers: sh = logging.StreamHandler() sh.setLevel(logging.INFO) if backtest: # 如果回测, 则去除将第一个本地时间 log_format = logging.Formatter('%(levelname)s - %(message)s') else: log_format = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') sh.setFormatter(log_format) self._logger.addHandler(sh) if debug: fh = logging.FileHandler(filename=debug) fh.setFormatter(log_format) self._logger.addHandler(fh)
eeeeeson 已回答的问题 2019年12月27日
#将日志级别设成INFO
logging_level = logging.INFO
logging.getLogger(‘TqApi.TqBacktest’).setLevel(logging_level)
logging.getLogger(‘TqApi.TqSim’).setLevel(logging_level)
api = TqApi(TqSim(), backtest=backtest,debug=api_debug_file)
apilogger = logging.getLogger(‘TqApi’)
apilogger.setLevel(logging_level)
eeeeeson 已回答的问题 2019年12月27日
现在完全解决你的问题暂时还没有好的方案,如果把logger关掉是可以的。在策略代码中加入:
import logging
logging.getLogger(“TqApi.TqSim”).disabled = True
west 发表新评论 2019年11月25日
之后可能优化,但不是最近,优先级比较低
直接api._logger.setLevel()改不就行了
Aaron Yu 发表新评论 2019年11月21日
首先,以下划线开头的变量一般认为是类的内部成员,直接外部访问是不符合python的规范的,当然这么做是没问题
其次,即使这样做,在TqApi创建实例的过程中,仍然会有debug log的输出,你用实盘账号来创建实例试试看就知道了
嗯嗯 是的 就是个建议 看看能否未来更新有加入