| | |
| | | """ |
| | | 日志 |
| | | """ |
| | | |
| | | |
| | | |
| | | import datetime |
| | | import os |
| | | |
| | | from loguru import logger |
| | | |
| | | |
| | | def get_path(dir_name, log_name): |
| | | return "D:/logs/gp/{}/{}".format(dir_name, log_name) + ".{time:YYYY-MM-DD}.log" |
| | | |
| | | |
| | | logger.add(get_path("l2", "l2_process_time"), filter=lambda record: record["extra"].get("name") == "l2_process_time", |
| | | rotation="00:00", compression="zip", enqueue=True) |
| | | logger_l2_process_time = logger.bind(name="l2_process_time") |
| | | logger.remove(handler_id=None) |
| | | |
| | | |
| | | # 每一天生成一个日志文件,历史日志文件采用zip压缩,异步写入日志 |
| | |
| | | logger.add(get_path("l2", "l2_process"), filter=lambda record: record["extra"].get("name") == "l2_process", |
| | | rotation="00:00", compression="zip", enqueue=True) |
| | | |
| | | |
| | | logger.add(get_path("l2", "l2_trade"), filter=lambda record: record["extra"].get("name") == "l2_trade", |
| | | rotation="00:00", compression="zip", enqueue=True) |
| | | |
| | | |
| | | logger.add(get_path("l2", "l2_trade_cancel"), filter=lambda record: record["extra"].get("name") == "l2_trade_cancel", |
| | | rotation="00:00", compression="zip", enqueue=True) |
| | |
| | | logger.add(get_path("system", "system"), filter=lambda record: record["extra"].get("name") == "system", |
| | | rotation="00:00", compression="zip", enqueue=True) |
| | | |
| | | |
| | | |
| | | logger_trade_gui = logger.bind(name="trade_gui") |
| | | logger_trade = logger.bind(name="trade") |
| | | logger_trade_delegate = logger.bind(name="delegate") |
| | | logger_l2_error = logger.bind(name="l2_error") |
| | | logger_l2_process = logger.bind(name="l2_process") |
| | | |
| | | logger_l2_trade = logger.bind(name="l2_trade") |
| | | logger_l2_trade_cancel = logger.bind(name="l2_trade_cancel") |
| | | logger_l2_trade_buy = logger.bind(name="l2_trade_buy") |
| | | |
| | | |
| | | logger_l2_big_data = logger.bind(name="l2_big_data") |
| | | logger_juejin_tick = logger.bind(name="juejin_tick") |
| | |
| | | logger_device = logger.bind(name="device") |
| | | logger_system = logger.bind(name="system") |
| | | |
| | | |
| | | class LogUtil: |
| | | @classmethod |
| | | def extract_log_from_key(cls, key, path, target_path): |
| | | fw = open(target_path, mode='w', encoding="utf-8") |
| | | try: |
| | | with open(path, 'r', encoding="utf-8") as f: |
| | | lines = f.readlines() |
| | | for line in lines: |
| | | if line.find("{}".format(key)) > 0: |
| | | fw.write(line) |
| | | finally: |
| | | fw.close() |
| | | |
| | | |
| | | # 导出数据处理位置日志 |
| | | def __export_l2_pos_range(code, date, dir): |
| | | LogUtil.extract_log_from_key("{} 处理数据范围".format(code), "D:/logs/gp/l2/l2_process.{}.log".format(date), |
| | | "{}/l2_process_{}.log".format(dir, date)) |
| | | |
| | | |
| | | # 导出交易日志 |
| | | def __export_l2_trade_log(code, date, dir): |
| | | LogUtil.extract_log_from_key(code, "D:/logs/gp/l2/l2_trade.{}.log".format(date), |
| | | "{}/l2_trade_{}.log".format(dir, date)) |
| | | |
| | | |
| | | # 导出交易取消日志 |
| | | def __export_l2_trade_cancel_log(code, date, dir): |
| | | LogUtil.extract_log_from_key(code, "D:/logs/gp/l2/l2_trade_cancel.{}.log".format(date), |
| | | "{}/l2_trade_cancel_{}.log".format(dir, date)) |
| | | |
| | | |
| | | def export_l2_log(code): |
| | | if len(code) < 6: |
| | | return |
| | | date = datetime.datetime.now().strftime("%Y-%m-%d") |
| | | dir_ = "D:/logs/gp/l2/{}".format(code) |
| | | if not os.path.exists(dir_): |
| | | os.mkdir(dir_) |
| | | __export_l2_pos_range(code, date, dir_) |
| | | __export_l2_trade_cancel_log(code, date, dir_) |
| | | __export_l2_trade_log(code, date, dir_) |
| | | |
| | | |
| | | if __name__ == '__main__': |
| | | logger_trade_gui.info("测试") |
| | | date = datetime.datetime.now().strftime("%Y-%m-%d") |
| | | LogUtil.extract_log_from_key("003005", "D:/logs/gp/l2/l2_process_time.{}.log".format(date), |
| | | "D:/logs/gp/l2/l2_process_time{}.{}.log".format("003005", date)) |