import os
import logging
import logging.handlers
import time
def get_log(logger_name, log_path, log_level):
"""
# 获取日志对象
:param logger_name: 日志名称
:param log_path: 日志目录
:param log_level: 日志级别
:return:
"""
# 创建一个logger
assert logger_name is not None and isinstance(logger_name, str)
if os.path.exists(log_path) is False:
os.makedirs(log_path)
assert log_level != "" and log_level is not None
assert log_path != "" and log_path is not None
log_dict = {'INFO': logging.INFO, 'DEBUG': logging.DEBUG, 'ERROR' : logging.ERROR, 'WARN': logging.WARN}
assert log_dict.get(log_level) is not None
logger = logging.getLogger(logger_name)
logger.setLevel(log_dict.get(log_level))
# 设置日志存放路径,日志文件名
# 获取本地时间,转换为设置格式
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
# 通过字符串拼接设置日志文件名
all_log_name = log_path + str(logger_name) + "_" + rq + ".log"
err_log_name = log_path + str(logger_name) + "_" + rq + "_error.log"
# 写入文件,如果文件超过100M,仅保留5个文件
fh = logging.handlers.RotatingFileHandler(all_log_name, maxBytes=1024*1024*100, backupCount=5)
fh.setLevel(log_dict.get(log_level))
# 创建一个handler写入错误日志
eh = logging.handlers.RotatingFileHandler(err_log_name, maxBytes=1024*1024*100, backupCount=5)
eh.setLevel(log_dict.get(log_level))
# 创建一个handler输出到控制台
ch = logging.StreamHandler()
ch.setLevel(log_dict.get(log_level))
# 定义日志输出格式
# 以时间-日志器名称-日志级别-日志内容的形式展示
all_log_formatter = logging.Formatter("%(asctime)s %(pathname)s %(filename)s %(funcName)s %(lineno)s \
%(levelname)s - %(message)s", "%Y-%m-%d %H:%M:%S")
# 以时间-日志器名称-日志级别-文件名-函数行号-错误内容定义错误日志
error_log_formatter = logging.Formatter("%(asctime)s %(pathname)s %(filename)s %(funcName)s %(lineno)s \
%(levelname)s - %(message)s", "%Y-%m-%d %H:%M:%S")
# 将定义好的输出形式添加到handler
fh.setFormatter(all_log_formatter)
ch.setFormatter(all_log_formatter)
eh.setFormatter(error_log_formatter)
# 给logger添加handler
logger.addHandler(fh)
logger.addHandler(ch)
logger.addHandler(ch)
return logger
Python3 如何添加日志
最新推荐文章于 2025-06-23 07:15:00 发布
本文介绍了一个Python日志管理系统,包括如何创建日志对象、设置日志级别、日志路径及日志文件名,同时实现了日志文件大小限制及备份功能。
459

被折叠的 条评论
为什么被折叠?



