自己搭建的日志文件,日常使用可以满足了
import datetime
import logging.handlers
import os
import logging
from logging.handlers import RotatingFileHandler
from init import log_dir
# 验证日志文件夹是否存在,不存在创建一个新的文件夹
def make_dir(make_dir_path):
path = make_dir_path.strip()
if not os.path.exists(path):
os.makedirs(path)
return path
def get_rotaing_handler(filename, log_level):
if filename:
handler = RotatingFileHandler(filename, maxBytes=1024 * 1024 * 100, backupCount=100, encoding="utf8")
else:
handler = RotatingFileHandler("./log.log", maxBytes=1024 * 1024 * 100, backupCount=100, encoding="utf8")
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d]- %(message)s")
handler.setFormatter(formatter)
handler.setLevel(log_level)
return handler
def root_roating_handler(log_path, log_level):
global _log_root_handler
if (_log_root_handler is not None
and _log_root_handler in logging.root.handlers):
logging.root.removeHandler(_log_root_handler)
logging.root.setLevel(logging.NOTSET)
_log_root_handler = get_rotaing_handler(log_path, log_level)
logging.root.addHandler(_log_root_handler)
_log_root_handler = None
if __name__ == '__main__':
# 日志等级
log_level = "INFO"
# 文件名
log_file = "img" + datetime.datetime.now().strftime(".%Y%m%d.log")
# 路径
log_path = os.path.join(log_dir, log_file)
# 检验并创建路径
make_dir(log_dir)
# 初始化logging
root_roating_handler(log_path, log_level)
logging.debug('debug message') # 低级别的:排错信息
logging.info('debug message') # 正常信息
logging.warning('warning message') # 警告信息
logging.error('error message') # 错误信息
logging.critical('critical message') # 高级别的 : 严重错误信息