Files
2026-05-17 18:28:25 +08:00

54 lines
1.7 KiB
Python

import logging
import os
from logging.handlers import RotatingFileHandler
# 创建 logs 文件夹(如果不存在)
if not os.path.exists("logs"):
os.makedirs("logs")
# 日志格式
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s"
# 日志文件路径
LOG_FILE = "logs/app.log"
# 配置日志
def setup_logger(name="app", level=logging.INFO):
"""
配置日志记录器
:param name: 日志记录器名称
:param level: 日志级别
:return: 配置好的日志记录器
"""
logger = logging.getLogger(name)
logger.setLevel(level)
# 防止重复添加处理器
if not logger.handlers:
# 控制台日志处理器
console_handler = logging.StreamHandler()
console_handler.setLevel(level)
console_formatter = logging.Formatter(LOG_FORMAT)
console_handler.setFormatter(console_formatter)
# 文件日志处理器(带日志轮转)
file_handler = RotatingFileHandler(LOG_FILE, maxBytes=5 * 1024 * 1024, backupCount=3, encoding="utf-8")
file_handler.setLevel(level)
file_formatter = logging.Formatter(LOG_FORMAT)
file_handler.setFormatter(file_formatter)
# 添加处理器到日志记录器
logger.addHandler(console_handler)
logger.addHandler(file_handler)
return logger
# 示例:使用日志记录器
if __name__ == "__main__":
logger = setup_logger(level=logging.DEBUG)
logger.debug("这是一个调试信息")
logger.info("这是一个普通信息")
logger.warning("这是一个警告信息")
logger.error("这是一个错误信息")
logger.critical("这是一个严重错误信息")