在需要添加日志的python文件中
#注入
from modules.logger import get_logger
logger = get_logger(__name__,"sql.log")
#日志写入
logger.warning("%s的%s的最大值为None,返回默认的None",\
table_name,select_columns)
""" 日志模块 """
import logging
import os
import tomllib
from logging.handlers import RotatingFileHandler
with open('modules/config.toml', 'rb') as f:
config = tomllib.load(f)
def get_logger(name, log_name="wr.log",):
"""
获取日志对象
:param name: 日志名称 填入 "__name__"
:param log_name: 日志文件名称
usage:
from modules.logger import get_logger
logger = get_logger(__name__)
logger.info("这是一个info 的log信息有%s,%s等信息", param1, param2,)
"""
# 获取日志目录
# log_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), "logs")
log_dir = config["DEBUG"]["LOG_DIR"]
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logger = logging.getLogger(name)
logger.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s - %(levelname)s -"
"[%(filename)s:%(lineno)d] -%(funcName)s - %(message)s")
# 创建一个滚动文件处理器,每个日志文件最大大小为5M,保存5个旧日志文件
rf_handler = RotatingFileHandler(
os.path.join(log_dir, log_name),
maxBytes=5 * 1024 * 1024,
backupCount=5,
encoding="utf-8",
)
rf_handler.setFormatter(formatter)
logger.addHandler(rf_handler)
# 如果是调试模式,则将日志输出到控制台
is_debug_mode_enabled = config["DEBUG"]["DEBUGMODE_TRIGGER"]
if is_debug_mode_enabled:
#print("Debug mode is on, log will be output to console.")
logger.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
return logger
评论 (0)