diff --git a/instances/fastapi_server/log/logger-1.py b/instances/fastapi_server/log/logger-1.py new file mode 100644 index 0000000..c810ee7 --- /dev/null +++ b/instances/fastapi_server/log/logger-1.py @@ -0,0 +1,29 @@ +from loguru import logger +import os + +def setup_logger(log_name, log_dir, log_level="INFO"): + if not os.path.exists(log_dir): + os.makedirs(log_dir) + + log_file = os.path.join(log_dir, f"{log_name}.log") + + # 配置 loguru 日志器 + logger.add( + log_file, + rotation="00:00", # 每天午夜切分 + retention="7 days", # 保留7天的日志文件 + level=log_level, + format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {message}", + compression="zip" # 可以选择压缩旧日志 + ) + + return logger + + +# 使用示例 +log = setup_logger('CQA', 'logs') + +log.debug("This is a test log message.") +log.info("This is a test log message.") +log.warning("This is a test log message.") +log.error("This is a test log message.") diff --git a/instances/fastapi_server/log/logger.py b/instances/fastapi_server/log/logger.py index 4170444..2b1ba42 100644 --- a/instances/fastapi_server/log/logger.py +++ b/instances/fastapi_server/log/logger.py @@ -3,25 +3,9 @@ import socket import os from datetime import datetime -from functools import wraps -def singleton(func): - instances = {} - - @wraps(func) - def wrapper(*args, **kwargs): - key = (args, frozenset(kwargs.items())) - if key not in instances: - instances[key] = func(*args, **kwargs) - return instances[key] - - return wrapper - - -@singleton -# 配置日志记录器 -def setup_logger(log_directory="logs", log_level="INFO"): +def setup_logger(log_name, log_directory="logs", log_level="INFO"): # 获取当前日期和主机名 hostname = socket.gethostname() current_date = datetime.now().strftime("%Y-%m-%d") @@ -30,7 +14,7 @@ def setup_logger(log_directory="logs", log_level="INFO"): log_directory = log_directory if not os.path.exists(log_directory): os.makedirs(log_directory) - log_filename = f"{log_directory}/{hostname}-{current_date}.log" + log_filename = log_name # 创建日志记录器 logger = logging.getLogger() @@ -62,7 +46,7 @@ def setup_logger(log_directory="logs", log_level="INFO"): if __name__ == "__main__": # 使用日志记录器 - logger = setup_logger() + logger = setup_logger(log_name="test") # 记录日志示例 logger.info("This is an info message.")