4 django logger封装
1 封装
-
self.logger.setLevel(LEVELS["INFO"]) # 修改此处可以控制日志级别
import logging import logging.handlers import os import time class Logger(object): def __init__(self): self.logger = logging.getLogger("") # 设置输出的等级 LEVELS = {'NOSET': logging.NOTSET, 'DEBUG': logging.DEBUG, 'INFO': logging.INFO, 'WARNING': logging.WARNING, 'ERROR': logging.ERROR, 'CRITICAL': logging.CRITICAL} # 创建文件目录 log_path = os.path.abspath(os.path.join(os.getcwd(), "../logs")) # logs 文件夹 if os.path.exists(log_path) and os.path.isdir(log_path): pass else: os.mkdir(log_path) # 修改log保存位置 # log_path = os.path.abspath(os.path.join(os.getcwd(), "../logs")) # logs 文件夹 timestamp = time.strftime("%Y-%m-%d", time.localtime()) log_file_name = '{}.txt'.format(timestamp) log_file = os.path.join(log_path, log_file_name) # 日志文件 rotatingFileHandler = logging.handlers.RotatingFileHandler(filename=log_file, maxBytes=1024 * 1024 * 5, # 5M backupCount=10, encoding='utf-8') # 设置输出格式 formatter = logging.Formatter('[%(asctime)s][%(filename)s][%(funcName)s][%(lineno)d][%(levelname)s] > %(message)s') rotatingFileHandler.setFormatter(formatter) # 控制台句柄 console = logging.StreamHandler() console.setLevel(logging.NOTSET) console.setFormatter(formatter) # 添加内容到日志句柄中 self.logger.addHandler(rotatingFileHandler) self.logger.addHandler(console) self.logger.setLevel(LEVELS["INFO"]) # 修改此处可以控制日志级别 def info(self, message): self.logger.info(message) def debug(self, message): self.logger.debug(message) def warning(self, message): self.logger.warning(message) def error(self, message): self.logger.error(message)
2 setting 中初始化
from utils.logger3 import Logger logger = Logger()
3 测试
from lizi_auto_test.settings import logger logger.info("this is info") logger.debug("this is debug") logger.error("this is error") logger.warning("this is warning")
文件和控制台输出结果:------------------------
[2021-05-09 15:33:45,828][logger3.py][info][51][INFO] > this is info
[2021-05-09 15:33:45,828][logger3.py][error][60][ERROR] > this is error
[2021-05-09 15:33:45,828][logger3.py][warning][57][WARNING] > this is warning
[2021-05-09 15:35:26,042][logger3.py][error][60][ERROR] > this is error
[2021-05-09 15:35:26,042][logger3.py][warning][57][WARNING] > this is warning
[2021-05-09 15:35:47,360][logger3.py][error][60][ERROR] > this is error
浙公网安备 33010602011771号