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算法相关的库,的更多相关文章

  1. hashlib加密模块、logging日志模块

    hashlib模块 加密:将明文数据通过一系列算法变成密文数据 目的: 就是为了数据的安全 基本使用 基本使用 import hashlib # 1.先确定算法类型(md5普遍使用) md5 = ha ...

  2. 约束、自定义异常、hashlib模块、logging日志模块

    一.约束(重要***) 1.首先我们来说一下java和c#中的一些知识,学过java的人应该知道,java中除了有类和对象之外,还有接口类型,java规定,接口中不允许在方法内部写代码,只能约束继承它 ...

  3. 包,logging日志模块,copy深浅拷贝

    一 包 package 包就是一个包含了 __init__.py文件的文件夹 包是模块的一种表现形式,包即模块 首次导入包: 先创建一个执行文件的名称空间 1.创建包下面的__init__.py文件的 ...

  4. python 自动化之路 logging日志模块

    logging 日志模块 http://python.usyiyi.cn/python_278/library/logging.html 中文官方http://blog.csdn.net/zyz511 ...

  5. Python logging(日志)模块

    python日志模块 内容简介 1.日志相关概念 2.logging模块简介 3.logging模块函数使用 4.logging模块日志流处理流程 5.logging模块组件使用 6.logging配 ...

  6. pyhton——logging日志模块的学习

    https://www.cnblogs.com/yyds/p/6901864.html 本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模 ...

  7. logging日志模块配置

    logging日志模块 日志级别 日志一共分成5个等级,从低到高分别是: 1)DEBUG 2)INFO 3)WARNING 4)ERROR 5)CRITICAL 说明: DEBUG:详细的信息,通常只 ...

  8. python中的logging日志模块

    日志是程序不可或缺的一部分.它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会. logging给我们提供了五种函数用来输出日志:debu ...

  9. logging 日志模块学习

    logging 日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪,所以还是灰常重要滴,下面我就来从入门到放弃的系统学习一下日志既可以在屏幕上显示,又可以在文件中体现. ...

随机推荐

  1. CF-517C-思维/math

    http://codeforces.com/contest/1072/problem/C 题目大意是给出两个数a,b ,找出若干个数p,使得 SUM{p}<=a ,找出若干个数q使得SUM{q} ...

  2. Spring注解之BeanPostProcessor与InitializingBean

    /*** BeanPostProcessor 为每个bean实例化时提供个性化的修改,做些包装等*/ package org.springframework.beans.factory.config; ...

  3. was重要文件位置备忘

    软件版本信息--/was/profiles/lsDmgr/properties/version/profile.version(/was/bin/versionInfo.sh) profile模版位置 ...

  4. Table展开行

    在element-ui的官网例子中,有展开行的功能,但是只能点击某行的箭头位置,才可以展开当行的内容.这不能满足业务需求,我们老大需要点击该行的任何一个位置都能展开这行内容显示.上网找了好多例子,都能 ...

  5. Nop 4.1版本已经迁移到.net core2.1版本

    1. github 下载,4.1版本,运行, install时,会让你新增后台账户密码,sql服务器 2. 在Configuration 新增Language 3. 上传中文语言包 , 你也可以先导出 ...

  6. Talend 从Excel导入Saleforce数据(二) TMAP是精髓

    TMap LookUp 经过测试的结果: ------------------------------------------ LookUp最好从CSV读数据,这样是最快了(20万记录1s).从Sal ...

  7. Uboot启动流程分析(转载)

    最近一段时间一直在做uboot移植相关的工作,需要将uboot-2016-7移植到单位设计的ARMv7的处理器上.正好元旦放假三天闲来无事,有段完整的时间来整理下最近的工作成果.之前在学习uboot时 ...

  8. 北邮新生排位赛2解题报告a-c

    A. 丁神去谷歌 2014新生暑假个人排位赛02 时间限制 1000 ms 内存限制 65536 KB 题目描述 丁神要去Google上班了,去之前丁神想再做一道水题,但时间不多了,所以他希望题目做起 ...

  9. bzoj1238

    题解: 傻逼模拟题 果断的复制了题解(还没有c++题解?) 代码: program p2509; type arr=array[..] of boolean; var tot:longint; s:a ...

  10. uitableView group模式下的间距问题

    我么在使用group模式定义tableview的时候,系统默认是会有head和foot的间距的,来区分我们不同的group:在具体使用的时候又时候我们不需要这个间距.我们可以重新赋值这些间距来达到我们 ...