day33 Pyhton logging 模块和包
一内容回顾
try/except
try/except/else
try/finally
try/except
try/except/finally
try/except/else/finally
报错的时候
1检查程序逻辑是不是有问题
2.逻辑没有问题,但是就是会报错
找到具体错误的那一行代码
在这一行代码上加上try,再根据错误类型进行处理
主动抛异常
raise 异常类型
自定义异常
继承BaseException
__str__方法的返回值就是这个异常抛出之后的异常内容
断言 assert语法,不满足条件就报错
hasblib模块
摘要模块:各种各样的摘要算法
md5/sha1
两件事:
1.密码的密文存储: 各种算法 动态加盐
2.文件的一致性校验
md5_obj =hashlib.md5(bytes 盐)# 创建一个新的md5值计算的对象
md5_obj.update(bytes) #每一次uodate,相当于在原来的字符串后面加上新的字符串
md5_obj.hexdigest() #只是获取最终结果
二今日内容
logging #日志模块
给用户看 : 银行流水\购物记录
哪一个管理员什么时候登陆 删除了一个学生
给程序员看的 :
计算器 'asjkdghlghljgjl;;' 计算错误了
录下每一个用户让你计算的表达式
记录下每一个计算的步骤是怎么错的
# f = open()
# f.write('年月日时分秒 所在的文件 错误的级别 asjhkhkaghkldgh')
# f.close()
# 格式不好看 logging模块 这些格式你就不需要反复写
# 每一次都需要自己打开文件\关闭文件 logging就不需要了
# 有一些信息 能够控制它在某一写特定的时刻就打印出来
# logging模块不能自动帮助你生成日志,仍然是你自己写你想写的内容
# logging只是帮助你 简化操作文件的步骤\按照你的要求规划日志等级\帮助你规范格式
import logging
# logging.basicConfig(level=logging.DEBUG)
# logging.debug('debug message') # 最细节的 计算机计算的那些小过程
# logging.info('info message') # 普通信息 记录每个用户的操作
# logging.warning('warning message')# 警告信息 你觉得可能会影响到你程序的安全\正确率的内容
# logging.error('error message') # 错误信息 直接影响你程序的健康了
# logging.critical('critical message')#批判的 把整个userinfo文件删掉了
# 默认显示warning以上的日志
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename = 'test.log',
filemode = 'a'
# 1.操作系统的编码可能会出现乱码问题
# 2.不支持同时向文件和屏幕输出
import logging
#logger对象的方式: 灵活性 可扩展性
logger = logging.getLogger() #创建一个logger对象
logger.setLevel(logging.DEBUG)
#创建一个文件操作符 来准备操作日志向文件中写这件事
fh = logging.FileHandler('mylog.log',encoding='utf-8')
fh2 = logging.FileHandler('mylog2.log',encoding='utf-8')
#创建一个屏幕操作符,来准备操作日志向屏幕中写这件事
sh = logging.StreamHandler()
#创建一个输出格式
formatter = logging.Formatter('%(asctime)s%(filename)s[line:%(lineno)d]%(levelname)s %(message)s')
formatter2 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
#组合
#输出格式和文件操作符\屏幕操作符绑在一起
fh.setFormatter(formatter)
sh.setFormatter(formatter2)
sh.setLevel(logging.ERROR)
# logger对象分别和文件操作符\屏幕操作符绑在一起
logger.addHandler(fh)
logger.addHandler(fh2)
logger.addHandler(sh)
#才开始能够使用logger来记录日志
logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')
三.模块
# mymodule就是模块
# import mymodule mymodule就是一个变量了
# 导入一个模块相当于什么???
# 执行了这个模块对应的文件
# 并且在执行的过程中 所有的函数名\变量名\类名都会绑定在这个模块中
# 1.开辟了一块属于这个模块的空间
# 2.让这个导入的名字mymodule指向这个空间
# 3.执行模块中的代码,把所有的名字都存储在这个空间中
# 模块会被重复导入么?不会
# import mymodule as m
# print(m.name)
# m.read1()
# as语句的用法
# 1.名字很长的时候
# 2.相同功能名字不同的几个模块的兼容问题
# from mymodule import name,read2
# from import 这个语法一旦执行,相当于什么?
# from import 仍然相当于执行整个文件
# 在from import 的过程中发生了什么事情?
# 1.创建一个空间
# 2.执行模块的代码 并且把每一个变量都放在空间中
# 3.创建变量名 = import的名字,并且指向空间中对应的变量
# 注意 :
# 在写代码的过程中,不要取和导入的变量名相同的名字,否则会导致导入的名字不可用
#模块中的变量永远是独立的,在内部是独立的使用的
day33 Pyhton logging 模块和包的更多相关文章
- day33 Pyhton 常用模块03
一.正则表达式: 1.元字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ...
- day18包的使用与日志(logging)模块
包的使用与日志(logging)模块1. 什么是包 包就是一个包含有__init__.py文件的文件夹 包本质就是一种模块,即包是用包导入使用的,包内部包含的文件也都是用来被导入使用2 为 ...
- 18 包 ,logging模块使用
包: 1 什么是包: 包就是一个包含有__init__.py文件的文件夹 宝本质就是一种模块,即包就是用包导入使用的,包内部包含的文件也都是用来被导入使用 2 为什么要用包 包就是文件夹,那文件加就是 ...
- python基础之包与logging模块
包 1.什么是包? 包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹 2.为什么要有包? 提高程序的结构性和可维护性 3.如何使用包? 导入包就是在导包下的__init__. ...
- 7.19 包 logging模块 hashlib模块 openpyxl模块 深浅拷贝
包 包是什么 他是一系列文件的结合体,表现形式就是文件夹 包的本质还是模块 他通常会有__init__.py文件 我们首先回顾一下模块导入的过程 import module首次导入模块(.py文件) ...
- day17_7.19包与logging模块,深浅拷贝
一.包 在模块的定义里,模块就是方法的集合,可以将一些常用的方法封装到一个py文件中,通过调用使用,而且,其中的表现形式也有以包的形式导入. 其实,包就是一系列模块的结合体,表示形式就是一个文件夹,在 ...
- 2019-7-19 包、logging模块、hashlib(加密模块)、openpyxl模块、深浅拷贝
一.包 什么是包: 它是一系列模块文件的结合体,表示形式就是一个文件夹.该文件内部通常会有一个__init__.py文件,包的本质还是一个模块,可以被调用,调包就相当于与调用__init__.py文件 ...
- Python进阶(十一)----包,logging模块
Python进阶(十一)----包,logging模块 一丶包的使用 什么是包: 包是通过使用 .模块名的方式组织python模块名称空间的方式. 通俗来说,含有一个__init__.py文件的文 ...
- 17.Python略有小成(包,logging模块)
Python(包,logging模块) 一.包 什么是包 官网解释 : 包是一种通过使用'.模块名'来组织python模块名称空间的方式 , 具体来讲 , 包就是一个包含有__ init __.py文 ...
随机推荐
- 用C、python手写redis客户端,兼容redis集群 (-MOVED和-ASK),快速搭建redis集群
想没想过,自己写一个redis客户端,是不是很难呢? 其实,并不是特别难. 首先,要知道redis服务端用的通信协议,建议直接去官网看,博客啥的其实也是从官网摘抄的,或者从其他博客抄的(忽略). 协议 ...
- seajs1.3.0源码解析之module依赖有序加载
/** * The core of loader */ ;(function(seajs, util, config) { // 模块缓存 var cachedModules = {} // 接口修改 ...
- Linux下Shell日期的格式,你知道几种?
Linux下Shell日期的格式,你知道几种? 不管是哪种语言,日期/时间都是一个非常重要的值.比如我们保存日志的时候,往往是某个前缀再加上当前时间,这样日志文件名称就可以做到唯一. 在Shell环境 ...
- [剑指Offer]65-不用加减乘除做加法
题目 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 题解 用位运算模拟加法的三步: 无进位加法:异或运算. 进位:与运算再左移一位. 直到进位为0结束. 代码 pub ...
- Maven【常见知识点速查】
文章更新时间:2020/04/10 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利 ...
- 有没有异常处理翻车过的,绩效还被打了C
絮叨 因为程序异常处理问题,就在前几天龙叔的服务挂了几秒钟. 完了,马上季度末打绩效,竟然在这里翻车了,心如刀绞啊. 虽然没有影响到用户体验,但是找到问题并解决掉问题是工程师日常追求之一. 作为一个优 ...
- centos 端口测试之nc使用
服务器端口测试是否正常,运维一般使用telnet来检查,但它有局限性,服务器的端口必须存在服务运行. 这时使用nc可以在服务端模拟开启一个端口,再通过nc测试此端口,好用! nc是netcat工具的简 ...
- 每日一个知识点系列:volatile的可见性原理
每日一个知识点系列的目的是针对某一个知识点进行概括性总结,可在一分钟内完成知识点的阅读理解,此处不涉及详细的原理性解读. img 看图说话 关键点1: 总线嗅探器(MESI 缓存一致性原理 ) 关键点 ...
- 和低效 IO 说再见,回头补一波 Java 7 的 NIO.2 特性
其实在这之前已经写过一篇关于 Java 7 的新特性文章了,那篇文章主要介绍了 Java 7 的资源自动关闭.Switch String 实现原理.异常捕获 try-catch.新的二进制书写方式等, ...
- dhtmlxGantt独立安装的系统要求
dhtmlxGantt库提供了使用导出作为在线服务从甘特图导出和导入数据的可能性. 您还可以通过在计算机上安装导出服务来本地导出甘特图.您需要确保系统满足系统要求才能使用导出模块: PNG / PDF ...