1
lhr
2024-07-30 aa9af6c73c1e8f19b9a385b8f362f7d5e17d4cc8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""
日志
"""
import sys
from loguru import logger
 
from local_api.util import constant
 
 
class MyLogger:
    def __init__(self):
        logger.remove()
        #   每一天生成一个日志文件,历史日志文件采用zip压缩,异步写入日志
        logger.add(self.get_path("trade", "buy"), filter=lambda record: record["extra"].get("name") == "trade_buy",
                   rotation="00:00",
                   compression="zip", enqueue=True)
 
        logger.add(self.get_path("trade", "sell"), filter=lambda record: record["extra"].get("name") == "trade_sell",
                   rotation="00:00",
                   compression="zip", enqueue=True)
 
        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("debug", "debug"), filter=lambda record: record["extra"].get("name") == "debug",
                   rotation="00:00",
                   compression="zip", enqueue=True)
 
        logger.add(self.get_path("kpl", "block"), filter=lambda record: record["extra"].get("name") == "kpl_block",
                   rotation="00:00",
                   compression="zip", enqueue=True)
 
        logger.add(self.get_path("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("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") == "print", enqueue=True)
 
    def get_path(self, dir_name, log_name):
        path_str = "{}/{}/{}".format(constant.LOG_DIR, dir_name,
                                     log_name) + ".{time:YYYY-MM-DD}.log"
        return path_str
 
    def get_logger(self, log_name):
        return logger.bind(name=log_name)
 
 
__mylogger = MyLogger()
 
logger_print = __mylogger.get_logger("print")
logger_system = __mylogger.get_logger("system")
logger_trade = __mylogger.get_logger("trade")
logger_trade_buy = __mylogger.get_logger("trade_buy")
logger_trade_sell = __mylogger.get_logger("trade_sell")
logger_kpl_limit_up = __mylogger.get_logger("kpl_limit_up")
logger_kpl_block = __mylogger.get_logger("kpl_block")
 
 
def printlog(*args):
    logger_print.info(args)