Skip to content

Commit

Permalink
feat: update logger
Browse files Browse the repository at this point in the history
  • Loading branch information
echonoshy committed Sep 6, 2024
1 parent 28f6912 commit 632cfaa
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 19 deletions.
29 changes: 29 additions & 0 deletions instances/fastapi_server/log/logger-1.py
Original file line number Diff line number Diff line change
@@ -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.")
22 changes: 3 additions & 19 deletions instances/fastapi_server/log/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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()
Expand Down Expand Up @@ -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.")
Expand Down

0 comments on commit 632cfaa

Please sign in to comment.