day28 - MD5加密&day-29日志模块

2022-05-05 11:56:44 浏览数 (2)

1.md5加密

代码语言:javascript复制
import hashlib
md5 = hashlib.md5(bytes('leon', encoding='utf_8')) # leon 转化为bytes类型的盐,可自己设置(动态加盐)
md5.update(b'leon1222') # 需要对 leon1222  加密
print(md5.hexdigest()) # 输出加密结果

2.定制日志

settings.py 配置

代码语言:javascript复制
LOG_FMT = "%(levelname)-8s%(asctime)s %(name)s:%(filename)s:%(lineno)d %(message)s"
INFO_LOG_PATH = os.path.join(PROJECT_PATH, "logs", "info.log")
ERROR_LOG_PATH = os.path.join(PROJECT_PATH, "logs", "error.log")
BACK_COUNT = 3

代码实现

代码语言:javascript复制
import logging
from logging import handlers

from conf import settings


class LogHandler(object):
    # 日志级别关系映射
    level_relations = {
        'debug': logging.DEBUG,
        'info': logging.INFO,
        'warning': logging.WARNING,
        'error': logging.ERROR,
        'crit': logging.CRITICAL
    }

    def __init__(self, filename, level='info', when='D'):
        self.logger = logging.getLogger(filename)

        self.log_colors_config = {
            'DEBUG': 'cyan',
            'INFO': 'green',
            'WARNING': 'yellow',
            'ERROR': 'red',
            'CRITICAL': 'red',
        }

        # 设置日志格式
        format_str = logging.Formatter(settings.LOG_FMT)
        # 设置日志级别
        self.logger.setLevel(self.level_relations.get(level))
        # 往屏幕上输出
        sh = logging.StreamHandler()
        # 设置屏幕上显示的格式
        sh.setFormatter(format_str)
        # 往文件里写入#指定间隔时间自动生成文件的处理器
        th = handlers.TimedRotatingFileHandler(
            filename=filename, when=when, backupCount=settings.BACK_COUNT, encoding='utf-8')
        """
        # 实例化TimedRotatingFileHandler
        # interval是时间间隔,
        # backupCount是备份文件的个数,如果超过这个个数,就会自动删除,
        # when是间隔的时间单位,单位有以下几种:
        # S 秒
        # M 分
        # H 小时、
        # D 天、
        # W 每星期(interval==0时代表星期一)
        # midnight 每天凌晨    
        """
        # 设置文件里写入的格式
        th.setFormatter(format_str)
        # 把对象加到logger里
        self.logger.addHandler(sh)
        self.logger.addHandler(th)


INFO = LogHandler(settings.INFO_LOG_PATH, level='info')
ERROR = LogHandler(settings.ERROR_LOG_PATH, level='error')

if __name__ == '__main__':
    ERROR.logger.error("测试")

0 人点赞