haslib模块,日志处理模块,自定义异常

1.haslib模块

SALT = b'skalsldl' #表示字节
def md5(pwd):
    #实例化对象
    obj = hashlib.md5(SALT)
    #写入要加密的字节
    obj.update(pwd.encode('utf-8'))
    return obj.hexdigest()
name = input('请输入用户名:')
pwd = input('输入密码:')
val = md5(pwd)
if name == 'hahah' and md5(pwd) == val:
    print('登录成功')
else:
    print('登录失败')

2.日志处理

1.在python内部配置日志

import logging
#进行日志配置, filename:文件名,asctime:结构化时间,name:用户名,levelname:等级名称,
#module:模块名 message:日志信息,level:日志等级
logger = logging.basicConfig(filename='1.log',
                             format='%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s',
                             datefmt='%Y-%m-%d %H:%M:%S %p',
                             level=15)
#等级>=15 的才会写入日志
logging.debug('10')#默认等级10
logging.info('20')#默认等级20
logging.warning('30')#默认等级30
logging.error('40')#默认等级40 ,必须及时处理
logging.critical('50')#默认等级50,必须马上处理
logging.log(15,'随意')#自定义等级

1.log中日志记录如下:
2021-01-28 17:42:25 PM - root - INFO - 日志处理: 20
2021-01-28 17:42:25 PM - root - WARNING - 日志处理: 30
2021-01-28 17:42:25 PM - root - ERROR - 日志处理: 40
2021-01-28 17:42:25 PM - root - CRITICAL - 日志处理: 50
2021-01-28 17:42:25 PM - root - Level 15 - 日志处理: 随意
 

2.日志记录程序错误堆栈,首先还是要配置日志文件的

import traceback
def func():
    try:
      a = a+1
    except Exception as e:
        msg = traceback.format_exc()
        logging.error(msg)
func()

3.自定义日志:

import logging
#定义一个FileHandle
file_handler = logging.FileHandler('2.log','a',encoding='utf-8')
file_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s-%(module)s: %(message)s'))
#创建一个操作日志的对象logger(依赖FileHandler)

logger1 = logging.Logger('S1',level=logging.ERROR)
logger1.addHandler(file_handler)

logger1.error('123123123')

4.自定义异常处理

import logging
logger1 = logging.basicConfig(filename='5.log',
                             format='%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s',
                             datefmt='%Y-%m-%d %H-%M-%S %p',
                             level=30
                            )
import os
import traceback
class ExistsError(Exception):
    '''
    自定义异常类,必须继承Exception
    '''
    pass


def func(path,str_input):
    try:
        if not os.path.exists(path):
            raise ExistsError()

    except ExistsError as  e:
        msg = traceback.format_exc()
        logging.error(msg)
    except KeyError as e:
        msg = traceback.format_exc()
        logging.error(msg)
    except Exception as e:
        print(e)
func('d','')
2021-01-28 18-29-01 PM - root - ERROR - 异常1: Traceback (most recent call last):
File "D:/workspace/com/baizhi/practice/day26/异常1.py", line 67, in func
raise ExistsError()
ExistsError

 

posted @ 2021-01-28 18:30  苦行僧冬*婷  阅读(100)  评论(0)    收藏  举报