59 lines
3.2 KiB
Python
59 lines
3.2 KiB
Python
import logging # Python内置日志模块
|
|
import os # 文件路径处理模块
|
|
import datetime # 时间处理模块
|
|
|
|
def info(str):
|
|
"""记录INFO级别的日志到info_日期.log文件"""
|
|
script_path = os.path.split(os.path.realpath(__file__))[0] # 获取当前脚本所在目录
|
|
nowTime = datetime.datetime.now().strftime('%Y%m%d') # 获取当前日期(年月日)
|
|
path = os.path.join(script_path+r'\logs', 'info_' +nowTime+".log") # 日志文件路径(logs子目录下)
|
|
isExists = os.path.exists(script_path+r'\logs') # 检查logs目录是否存在
|
|
if not isExists:
|
|
os.makedirs(script_path+r'\logs') # 不存在则创建logs目录
|
|
logger = logging.getLogger("run") # 创建名为"run"的日志器
|
|
logger.setLevel(level=logging.INFO) # 设置日志级别为INFO
|
|
handler = logging.FileHandler(path) # 创建文件处理器(指定日志文件)
|
|
handler.setLevel(logging.INFO) # 处理器日志级别为INFO
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s => %(message)s') # 日志格式
|
|
handler.setFormatter(formatter) # 绑定格式到处理器
|
|
logger.addHandler(handler) # 日志器添加处理器
|
|
logger.info(str) # 写入INFO日志
|
|
logger.removeHandler(handler) # 移除处理器(避免重复输出)
|
|
|
|
def warning(str):
|
|
"""记录WARNING级别的日志到info_日期.log文件(与INFO共用文件)"""
|
|
# 逻辑与info()基本一致,区别在于日志级别为WARNING
|
|
script_path = os.path.split(os.path.realpath(__file__))[0]
|
|
nowTime = datetime.datetime.now().strftime('%Y%m%d')
|
|
path = os.path.join(script_path+r'\logs', 'info_' +nowTime+".log")
|
|
isExists = os.path.exists(script_path+r'\logs')
|
|
if not isExists:
|
|
os.makedirs(script_path+r'\logs')
|
|
logger = logging.getLogger("run")
|
|
logger.setLevel(level=logging.WARNING)
|
|
handler = logging.FileHandler(path)
|
|
handler.setLevel(logging.WARNING)
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s => %(message)s')
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
logger.warning(str)
|
|
logger.removeHandler(handler)
|
|
|
|
def error(str):
|
|
"""记录ERROR级别的日志到error_日期.log文件"""
|
|
# 逻辑与info()基本一致,区别在于日志级别为ERROR,且日志文件前缀为error_
|
|
script_path = os.path.split(os.path.realpath(__file__))[0]
|
|
nowTime = datetime.datetime.now().strftime('%Y%m%d')
|
|
path = os.path.join(script_path+r'\logs', 'error_' +nowTime+".log")
|
|
isExists = os.path.exists(script_path+r'\logs')
|
|
if not isExists:
|
|
os.makedirs(script_path+r'\logs')
|
|
logger = logging.getLogger("run")
|
|
logger.setLevel(level=logging.ERROR)
|
|
handler = logging.FileHandler(path)
|
|
handler.setLevel(logging.ERROR)
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s => %(message)s')
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
logger.error(str)
|
|
logger.removeHandler(handler) |