logging日志模块,hashlib hash算法相关的库,
logging:
功能完善的日志模块
import logging #日志的级别
logging.debug("这是个调试信息")#级别10
#常规信息
logging.info("常规信息")#20
#警告信息
logging.warning("警告信息")#30
#错误信息
logging.error("错误信息")#40
#严重错误
logging.critical("严重错误")#50
#在logging模块中有对应的常量来标识级别
#在默认情况下 默认的级别 30 WARING 日志输出位置是控制台 #2.自定义日志的配置
logging.basicConfig(
filename="a.log",
filemode="at",
level=10,
format="%(asctime)s %(levelname)s %(funcName)s %(lineno)s %(message)s",
datefmt="%Y-%m-%d %X %p"
)
logging.debug("这是个错误信息") #日志模块的四个核心角色
'''
1.logger 日志生成器(生成后需要看一下级别 当前生成级别比设置的级别低 就不往下进行了)
2.filter 过滤器(根据指定的过滤逻辑进行过滤)->不常用
3.handler 处理器(按照formatter指定的格式输出)
4.formatter 格式处理器 控制输出格式 '''
#1.创建一个日志生成器
mylog=logging.getLogger("mylog")
#设置生成器级别
mylog.setLevel(logging.DEBUG)
#2.搞一个日志处理器
fh=logging.FileHandler("b.log",encoding="utf-8")
#3.搞一个格式处理器
fm=logging.Formatter("%(levelname)s %(funcName)s %(lineno)s %(message)s",
datefmt="%Y-%m-%d %X %p")
#4.将三个对象进行关联
mylog.addHandler(fh)
fh.setFormatter(fm)
#测试
mylog.debug("mylog 的 测试4") #日志的继承
logg1=logging.getLogger("father")
logg2=logging.getLogger("father.son")
logg3=logging.getLogger("father.son.grandson")
#默认值Ture 标识 有继承关系 当子日记产生日志时候 给它的父级及上级都发一份
logg3.propagate=False
fh=logging.FileHandler("b.log",encoding="utf-8")
fm=logging.Formatter("%(levelname)s %(funcName)s %(lineno)s %(message)s",
datefmt="%Y-%m-%d %X %p")
logg1.addHandler(fh)
logg2.addHandler(fh)
logg3.addHandler(fh)
fh.setFormatter(fm)
logg2.warning("father.son.log")
import logging.config
#以字典来配置日志 传入一个字典对象 就不需要再在上面编写一堆代码了
logging.config.dictConfig() #流处理器
log1=logging.getLogger("a")
#输出到文件
fh=logging.FileHandler("c.log",encoding="utf-8")
#输出到控制台
sh=logging.StreamHandler() log1.addHandler(sh)
fm=logging.Formatter("%(levelname)s %(funcName)s %(lineno)s %(message)s",
datefmt="%Y-%m-%d %X %p")
sh.setFormatter(fm)
log1.waring("测试!") import conf.settings
import logging.config
def log():
logging.config.dictConfig(conf.settings.LOGGING_DIC)
loger=logging.getLogger("mylog")
loger.warning("警告!")
hashlib:
hash算法相关的库
算法怎么算不需要关心
我们关心的重点是 算出来的结果有什么用 """
hash lib
hash 是一种算法 是将一个任意长度的数据 根据计算 得到一个固定长度特征码
特征:不同输入 可能会有相同的结果(几率比较小)
相同的输入 必然得到相同结果
由于散列(特征)的性质 从原理来看是不可能反解
1 . 用来验证两个输入的数据是否一致
密码验证:
123321 jahsaishajhsjahjas
chient 加密后结果 server 拿到加密后
2 . 验证数据是否被篡改 比如游戏安装包 有没有被改过
为了防止别人撞库 可以用update进行加严处理 """
# 撞库破解的原理 有人事先把常见的明文和密文的对应关系 存到数据库
#运气好可以查到 import hashlib
m=hashlib.md5("1yanhui23".encode("utf-8"))
print(m.hexdigest())
#加严
m.update("dsdfgsfzds".encode("utf-8"))
print(m.hexdigest())
#定义时直接加严
import hmac
h=hmac.new("dsdfgsfzds".encode("utf-8"))
h.update("123".encode("utf-8"))
print(h.hexdigest())
logging日志模块,hashlib hash算法相关的库,的更多相关文章
- hashlib加密模块、logging日志模块
hashlib模块 加密:将明文数据通过一系列算法变成密文数据 目的: 就是为了数据的安全 基本使用 基本使用 import hashlib # 1.先确定算法类型(md5普遍使用) md5 = ha ...
- 约束、自定义异常、hashlib模块、logging日志模块
一.约束(重要***) 1.首先我们来说一下java和c#中的一些知识,学过java的人应该知道,java中除了有类和对象之外,还有接口类型,java规定,接口中不允许在方法内部写代码,只能约束继承它 ...
- 包,logging日志模块,copy深浅拷贝
一 包 package 包就是一个包含了 __init__.py文件的文件夹 包是模块的一种表现形式,包即模块 首次导入包: 先创建一个执行文件的名称空间 1.创建包下面的__init__.py文件的 ...
- python 自动化之路 logging日志模块
logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...
- Python logging(日志)模块
python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...
- pyhton——logging日志模块的学习
https://www.cnblogs.com/yyds/p/6901864.html 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模 ...
- logging日志模块配置
logging日志模块 日志级别 日志一共分成5个等级,从低到高分别是: 1)DEBUG 2)INFO 3)WARNING 4)ERROR 5)CRITICAL 说明: DEBUG:详细的信息,通常只 ...
- python中的logging日志模块
日志是程序不可或缺的一部分.它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会. logging给我们提供了五种函数用来输出日志:debu ...
- logging 日志模块学习
logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...
随机推荐
- Dynamic Shortest Path CodeForces - 843D (动态最短路)
大意: n结点有向有权图, m个操作, 增加若干边的权重或询问源点为1的单源最短路. 本题一个特殊点在于每次只增加边权, 并且边权增加值很小, 询问量也很小. 我们可以用johnson的思想, 转化为 ...
- stl中的for_each() 函数的注意事项
#include<iostream> using namespace std; #include"vector" #include"algorithm&quo ...
- PY3 多组输入
在c语言你能使用while(scanf(“%d”,x) !=EOF)判断输入是否碰到文件结束符(EOF). 但是在python你不能使用while((x=input())!=EOF). 这有两种方法可 ...
- 使用SetInterval时函数不能传参问题
无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.经网上查询后整理如下:例如对于函 ...
- ssh -vT git@github.com get “ No such file or directory” 错误
在"Are you sure you want to continue connnecting"的时候回复y,不要打空格跳过 参考:http://stackoverflow.com ...
- py-faster R-CNN 用于训练自己的数据(1)
官方给出的faster R-CNN的源码python版:https://github.com/rbgirshick/py-faster-rcnn 先来分析一下 整个文件,根目录下的文件 caffe-f ...
- Http Header Content-Typ
Http Header里的Content-Type一般有这三种:application/x-www-form-urlencoded:数据被编码为名称/值对.这是标准的编码格式.multipart/fo ...
- 窗体应用程序防腾讯QQ源码
窗体应用程序防腾讯QQ源码 using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...
- 巧用call,appl有 根据对象某一属性求最大值
查找对象数组中某属性的最大最小值的快捷方法 例如要查找array数组中对象的value属性的最大值 var array=[ { "index_id": 119, "are ...
- kiss word memory post poly peri out ~p 4
1● post p əust 在后面,邮件 2● peri 多 3● poly 周围,靠近