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. 创建gitlab ssh 密钥

    SSH代表用于管理网络,操作系统和配置的Secure Shell或Secure Socket Shell,并且每次都不需要使用用户名和密码即可验证GitLab服务器. 您可以设置SSH密钥以提供计算机 ...

  2. Known Notation ZOJ - 3829 (后缀表达式,贪心)

    大意:给定后缀表达式, 每次操作可以添加一个字符, 可以交换两个字符的位置, 相邻数字可以看做一个整体也可以分开看, 求合法所需最少操作数. 数字个数一定为星号个数+1, 添加星号一定不会更优. 先判 ...

  3. CRM WEB UI 02搜索跳转到详细界面

    结合上一个,在上一个中,创建的是选择链接字段EBELN. 下面来实现点击EBELN跳转到详细界面: 1.创建ZLYTEST03_H组件,做详细界面. 2.创建概览页 DETOV. 3.创建视图集 DE ...

  4. Django之REST framework源码分析

    前言: Django REST framework,是1个基于Django搭建 REST风格API的框架: 1.什么是API呢? API就是访问即可获取数据的url地址,下面是一个最简单的 Djang ...

  5. 【转】vue项目重构技术要点和总结

    vue数据更新, 视图未更新 这个问题我们经常会遇到,一般是vue数据赋值的时候,vue数据变化了,但是视图没有更新.这个不算是项目重构的技术要点,也和大家分享一下vue2.0通常的解决方案吧! 解决 ...

  6. jQuery滚屏插件XSwitch.js

    1.需要有基本的HTML结构 <div style="margin-top: 124px;" id="container" data-XSwitch> ...

  7. Linux确认网口对应配置文件

    服务器经常是多网卡多网口,我们在某个网口插上网线后,到/etc/sysconfig/network-scripts/下配置ip时需要确定插上网线的网口对应的是哪个配置文件(比如是eth0还是eth1) ...

  8. Eclipse导出WAR包

    参考: https://jingyan.baidu.com/article/ab0b56309110b4c15afa7de2.html

  9. pyqt实现滑动开关

    https://www.cnblogs.com/feiyangqingyun/p/6035633.html 根据Qt的实现,在PyQt上面实现了滑动开关的控件 import sys from PyQt ...

  10. Linux 控制CPU使用率

    曾经看过<编程之美>上提到说使 CPU的使用率固定在百分之多少.然后这次刚好要用到这个东西,下面是一个简单的实现.基于多线程: Linux 版本: #include <iostrea ...