""" 日志 """ import logging import os import sys from loguru import logger import constant class MyLogger: def __init__(self): logger.remove() # 每一天生成一个日志文件,历史日志文件采用zip压缩,异步写入日志 logger.add(self.get_path("trade", "trade"), filter=lambda record: record["extra"].get("name") == "trade", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("trade", "delegate"), filter=lambda record: record["extra"].get("name") == "delegate", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("mysql", "mysql_debug"), filter=lambda record: record["extra"].get("name") == "mysql_debug", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("code_attribute", "pre_close_price"), filter=lambda record: record["extra"].get("name") == "pre_close_price", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("code_attribute", "zylt_gb"), filter=lambda record: record["extra"].get("name") == "codes_zyltgb", rotation="00:00", compression="zip", enqueue=True) # 显示在控制台 # logger.add(sys.stdout, # filter=lambda record: record["extra"].get("name") == "l2_trade", enqueue=True) logger.add(self.get_path("juejin", "juejin_tick"), filter=lambda record: record["extra"].get("name") == "juejin_tick", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("juejin", "juejin_trade"), filter=lambda record: record["extra"].get("name") == "juejin_trade", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("juejin", "huaxin_trade"), filter=lambda record: record["extra"].get("name") == "huaxin_trade", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("ths", "code_operate"), filter=lambda record: record["extra"].get("name") == "code_operate", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("strategy", "buy_strategy"), filter=lambda record: record["extra"].get("name") == "buy_strategy", rotation="00:00", compression="zip", enqueue=True) # 显示在控制台 # logger.add(sys.stdout, # filter=lambda record: record["extra"].get("name") == "code_operate", enqueue=True) logger.add(self.get_path("device", "device"), filter=lambda record: record["extra"].get("name") == "device", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("system", "system"), filter=lambda record: record["extra"].get("name") == "system", rotation="00:00", compression="zip", enqueue=True) # 显示在控制台 logger.add(sys.stdout, filter=lambda record: record["extra"].get("name") == "system", enqueue=True) logger.add(self.get_path("ths", "buy_1_volumn"), filter=lambda record: record["extra"].get("name") == "buy_1_volumn", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("ths", "buy_1_volumn_record"), filter=lambda record: record["extra"].get("name") == "buy_1_volumn_record", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("ths", "trade_queue_price_info"), filter=lambda record: record["extra"].get("name") == "trade_queue_price_info", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("ths", "day_volumn"), filter=lambda record: record["extra"].get("name") == "day_volumn", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("ths", "buy_win_distibute"), filter=lambda record: record["extra"].get("name") == "buy_win_distibute", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("first_code", "first_code_record"), filter=lambda record: record["extra"].get("name") == "first_code_record", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("debug", "debug"), filter=lambda record: record["extra"].get("name") == "debug", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("debug", "request_api"), filter=lambda record: record["extra"].get("name") == "request_api", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("trade", "trade_record"), filter=lambda record: record["extra"].get("name") == "trade_record", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("trade", "position_api_request"), filter=lambda record: record["extra"].get("name") == "position_api_request", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("score", "place_order_score"), filter=lambda record: record["extra"].get("name") == "place_order_score", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_limit_up_reason_change"), filter=lambda record: record["extra"].get("name") == "kpl_limit_up_reason_change", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_limit_up"), filter=lambda record: record["extra"].get("name") == "kpl_limit_up", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_debug"), filter=lambda record: record["extra"].get("name") == "kpl_debug", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_block_can_buy"), filter=lambda record: record["extra"].get("name") == "kpl_block_can_buy", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_open_limit_up"), filter=lambda record: record["extra"].get("name") == "kpl_open_limit_up", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_jx_out"), filter=lambda record: record["extra"].get("name") == "kpl_jx_out", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_jx_in"), filter=lambda record: record["extra"].get("name") == "kpl_jx_in", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_latest_gaobiao"), filter=lambda record: record["extra"].get("name") == "kpl_latest_gaobiao", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("kpl", "kpl_market_strong"), filter=lambda record: record["extra"].get("name") == "kpl_market_strong", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("plates", "special_codes"), filter=lambda record: record["extra"].get("name") == "plate_special_codes", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("redis", "redis_debug"), filter=lambda record: record["extra"].get("name") == "redis_debug", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_path("profile", "profile"), filter=lambda record: record["extra"].get("name") == "profile", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_hx_path("contact", "debug"), filter=lambda record: record["extra"].get("name") == "hx_contact_debug", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_hx_path("trade", "trade_callback"), filter=lambda record: record["extra"].get("name") == "hx_trade_callback", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_hx_path("trade", "debug"), filter=lambda record: record["extra"].get("name") == "hx_trade_debug", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_hx_path("trade", "trade_loop"), filter=lambda record: record["extra"].get("name") == "hx_trade_loop", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_hx_path("trade", "l2_active_sell"), filter=lambda record: record["extra"].get("name") == "hx_l2_active_sell", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_local_huaxin_path("trade", "trade_debug"), filter=lambda record: record["extra"].get("name") == "local_huaxin_trade_debug", rotation="00:00", compression="zip", enqueue=True) logger.add(sys.stdout, filter=lambda record: record["extra"].get("name") == "local_huaxin_l1_show_info") logger.add(self.get_local_huaxin_path("l1", "show_info"), filter=lambda record: record["extra"].get("name") == "local_huaxin_l1_show_info", rotation="00:00", compression="zip", enqueue=True) logger.add(self.get_local_huaxin_path("l1", "l1_for_trade"), filter=lambda record: record["extra"].get("name") == "local_huaxin_l1_trade_info", rotation="00:00", compression="zip", enqueue=True) def get_path(self, dir_name, log_name): path_str = "{}/ls_logs/gp/{}/{}".format(constant.get_path_prefix(), dir_name, log_name) + ".{time:YYYY-MM-DD}.log" # print(path_str) return path_str def get_hx_path(self, dir_name, log_name): path_str = "{}/ls_logs/huaxin/{}/{}".format(constant.get_path_prefix(), dir_name, log_name) + ".{time:YYYY-MM-DD}.log" # print(path_str) return path_str def get_local_huaxin_path(self, dir_name, log_name): path_str = "{}/ls_logs/huaxin_local/{}/{}".format(constant.get_path_prefix(), dir_name, log_name) + ".{time:YYYY-MM-DD}.log" # print(path_str) return path_str def get_logger(self, log_name): return logger.bind(name=log_name) __mylogger = MyLogger() logger_trade_gui = __mylogger.get_logger("trade_gui") logger_trade = __mylogger.get_logger("trade") logger_trade_delegate = __mylogger.get_logger("delegate") logger_juejin_tick = __mylogger.get_logger("juejin_tick") logger_juejin_trade = __mylogger.get_logger("juejin_trade") logger_huaxin_trade = __mylogger.get_logger("huaxin_trade") logger_code_operate = __mylogger.get_logger("code_operate") logger_device = __mylogger.get_logger("device") logger_system = __mylogger.get_logger("system") logger_buy_1_volumn = __mylogger.get_logger("buy_1_volumn") logger_buy_1_volumn_record = __mylogger.get_logger("buy_1_volumn_record") logger_trade_queue_price_info = __mylogger.get_logger("trade_queue_price_info") logger_day_volumn = __mylogger.get_logger("day_volumn") logger_buy_win_distibute = __mylogger.get_logger("buy_win_distibute") logger_first_code_record = __mylogger.get_logger("first_code_record") logger_debug = __mylogger.get_logger("debug") logger_request_api = __mylogger.get_logger("request_api") logger_trade_record = __mylogger.get_logger("trade_record") logger_trade_position_api_request = __mylogger.get_logger("position_api_request") logger_place_order_score = __mylogger.get_logger("place_order_score") logger_kpl_limit_up_reason_change = __mylogger.get_logger("kpl_limit_up_reason_change") logger_kpl_limit_up = __mylogger.get_logger("kpl_limit_up") logger_kpl_debug = __mylogger.get_logger("kpl_debug") logger_kpl_block_can_buy = __mylogger.get_logger("kpl_block_can_buy") logger_kpl_open_limit_up = __mylogger.get_logger("kpl_open_limit_up") logger_kpl_jx_out = __mylogger.get_logger("kpl_jx_out") logger_kpl_jx_in = __mylogger.get_logger("kpl_jx_in") logger_kpl_latest_gaobiao = __mylogger.get_logger("kpl_latest_gaobiao") # 开盘啦市场强度 logger_kpl_market_strong = __mylogger.get_logger("kpl_market_strong") logger_plate_special_codes = __mylogger.get_logger("plate_special_codes") logger_kp_msg = __mylogger.get_logger("kp_msg") logger_redis_debug = __mylogger.get_logger("redis_debug") logger_profile = __mylogger.get_logger("profile") logger_mysql_debug = __mylogger.get_logger("mysql_debug") logger_buy_strategy = __mylogger.get_logger("buy_strategy") # -------------------------------华鑫日志--------------------------------- hx_logger_contact_debug = __mylogger.get_logger("hx_contact_debug") hx_logger_trade_callback = __mylogger.get_logger("hx_trade_callback") hx_logger_trade_debug = __mylogger.get_logger("hx_trade_debug") hx_logger_trade_loop = __mylogger.get_logger("hx_trade_loop") # -------------------------------华鑫本地日志--------------------------------- logger_local_huaxin_l2_subscript = __mylogger.get_logger("local_huaxin_subscript") logger_local_huaxin_contact_debug = __mylogger.get_logger("local_huaxin_debug") logger_local_huaxin_trade_debug = __mylogger.get_logger("local_huaxin_trade_debug") logger_local_huaxin_l1 = __mylogger.get_logger("local_huaxin_l1_show_info") logger_local_huaxin_g_cancel = __mylogger.get_logger("local_huaxin_g_cancel") logger_local_huaxin_l1_trade_info = __mylogger.get_logger("local_huaxin_l1_trade_info") # 收盘价日志 logger_pre_close_price = __mylogger.get_logger("pre_close_price") logger_codes_zyltgb = __mylogger.get_logger("codes_zyltgb") def close_print(): logging.basicConfig(level=logging.ERROR) if not constant.is_windows(): os.close(1) os.open('/dev/null', os.O_WRONLY) if __name__ == "__main__": open_limit_up_codes = set({"000333", "000222"}) logger_kpl_open_limit_up.info(f"炸板代码:{open_limit_up_codes}")