"""
|
日志
|
"""
|
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(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}")
|