"""
|
异步日志管理器
|
"""
|
import queue
|
import time
|
|
from log_module.log import logger_debug, logger_system
|
from utils import tool
|
|
|
class AsyncLogManager:
|
__log_queue = queue.Queue()
|
|
def __add_log(self, logger, method, *args):
|
self.__log_queue.put_nowait((logger, time.time(), method, args))
|
|
def debug(self, logger, *args):
|
self.__add_log(logger, "debug", *args)
|
|
def info(self, logger, *args):
|
self.__add_log(logger, "info", *args)
|
|
def warning(self, logger, *args):
|
self.__add_log(logger, "warning", *args)
|
|
def error(self, logger, *args):
|
self.__add_log(logger, "error", *args)
|
|
def exception(self, logger, *args):
|
self.__add_log(logger, "exception", *args)
|
|
# 运行同步日志
|
def run_sync(self):
|
logger_system.info(f"run_sync 线程ID:{tool.get_thread_id()}")
|
while True:
|
try:
|
val = self.__log_queue.get()
|
time_s = val[1]
|
cmd = val[2]
|
method = getattr(val[0], cmd)
|
d = list(val[3])
|
d[0] = f"[{tool.to_time_str(int(time_s))}.{str(time_s).split('.')[1][:3]}] " + d[0]
|
d = tuple(d)
|
method(*d)
|
except:
|
pass
|
|
|
l2_data_log = AsyncLogManager()
|
|
|
log_queue = queue.Queue()
|
|
|
def __add_log(logger, method, *args):
|
log_queue.put_nowait((logger, time.time(), method, args))
|
|
|
def debug(logger, *args):
|
__add_log(logger, "debug", *args)
|
|
|
def info(logger, *args):
|
__add_log(logger, "info", *args)
|
|
|
def warning(logger, *args):
|
__add_log(logger, "warning", *args)
|
|
|
def error(logger, *args):
|
__add_log(logger, "error", *args)
|
|
|
def exception(logger, *args):
|
__add_log(logger, "exception", *args)
|
|
|
# 运行同步日志
|
def run_sync():
|
logger_system.info(f"async_log 线程ID:{tool.get_thread_id()}")
|
while True:
|
try:
|
val = log_queue.get()
|
time_s = val[1]
|
cmd = val[2]
|
method = getattr(val[0], cmd)
|
d = list(val[3])
|
d[0] = f"[{tool.to_time_str(int(time_s))}.{str(time_s).split('.')[1][:3]}] " + d[0]
|
d = tuple(d)
|
method(*d)
|
except:
|
pass
|
|
|
if __name__ == "__main__":
|
# info(logger_debug, "*-{}", "test")
|
info(logger_debug, "123123")
|
run_sync()
|