Difficult-Rocket/libs/msdnicrosoft_logger/shenjack.py
2022-06-27 14:42:26 +08:00

57 lines
1.4 KiB
Python

import atexit
from time import strftime
from typing import Optional
color_reset_suffix = "\033[0m"
class LogFileCache:
"""日志文件缓存"""
def __init__(self, file_name: str = 'logs//log.log', flush_time: Optional[int, float] = 1, cache_entries_num: int = 10):
# 配置相关
self.log_file_name = file_name # log 文件名称
self.flush_time = flush_time # 缓存刷新时长
self.cache_entries_num = cache_entries_num
# 写入缓存数
self.cache_count = 0
self.log_caches = []
def _log_file_time_write(self) -> None:
"""使用 threading.Timer 调用的定时写入日志文件的函数"""
if self.cache_count == 0:
return None
...
def make_log(self, string: str, wait4cache=True) -> None:
if wait4cache:
self.have_log_cache = True
else:
...
class Logger:
"""shenjack logger"""
def __init__(self, config: dict = None) -> None:
if config is None:
self.config = {}
else:
self.config = config
class GetLogger:
"""shenjack牌logger"""
def __init__(self):
self.configs = {}
def add_config(self, name: str, config: dict) -> dict:
self.configs[name] = config
return self.configs
def logger(self, name: str = 'root') -> Logger:
return Logger(config=self.configs)