模块logging

    logging模块的主要功能是记录软件调试、操作过程中的各种日志。
默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),
默认的日志格式为日志级别:Logger名称:用户输出消息。
logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,
可用参数有: filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。
datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别
stream:用指定的stream创建StreamHandler。
可以指定输出到sys.stderr,sys.stdout或者文件(f=open(‘test.log’,’w’)),默认
为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。 format参数中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。
逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s用户输出的消息 # 修改日志记录级别
logging.basicConfig(
level=logging.DEBUG,# 级别要大写
) # 函数版日志模板
import logging
logging.basicConfig(
# level=logging.WARNING, # 默认日志级别
level=logging.DEBUG, # 修改日志级别
format = '%(asctime)s - %(name)s - [%(lineno)d] - %(message)s',
filename = "test.log", # 日志文件名
filemode = "w" # 日志文件操作模式
)
logging.DEBUG("这是调试级别") # debug调试级别,对应表示参数10
logging.INFO("这是信息级别") # 日常信息级别,对应表示参数20
logging.WARNING("这是警告级别") # 警告级别,对应表示参数30
logging.ERROR("这是错误级别") # 错误级别,对应表示参数40
logging.CRITICAL("这是严重级别") # 严重级别,对应表示参数50 # 结果为:
2019-01-16 18:23:56,605 - root - [11] - 这是调试级别
2019-01-16 18:23:56,605 - root - [12] - 这是信息级别
2019-01-16 18:23:56,606 - root - [13] - 这是警告级别
2019-01-16 18:23:56,606 - root - [14] - 这是错误级别
2019-01-16 18:23:56,606 - root - [15] - 这是严重级别 1、format = '%(asctime)s - %(name)s - [%(lineno)d] - %(message)s'
# 日志时间 操作人 运行行数 提示日志信息
2、当前配置,写到文件和打印到屏幕,只能二选一
3、文件写入的默认编码方式是GBK格式,不支持修改 # 自定义版本
import logging
logger = logging.getLogger("操作日志")#获取一个新的日志
formatter = logging.Formatter('%(asctime)s - %(name)s - [%(lineno)d] - %(message)s')
#定义一个模板 ch = logging.StreamHandler()#生成一个屏幕流
fh = logging.FileHandler("test.log","a","utf-8")#生成一个文件流 ch.setFormatter(formatter)#把定义的模板添加给屏幕流
fh.setFormatter(formatter)#把定义的模板添加给文件流 logger.setLevel(logging.DEBUG)#更改日志记录级别 logger.addHandler(ch)#将以屏幕流方式输出日志
logger.addHandler(fh)#将以文件流方式输出日志 logger.debug("这是调试级别")
logger.info("这是信息级别")
logger.warning("这是警告级别")
logger.error("这是错误级别")
logger.critical("这是严重级别") ###########也可以单独为其他角色定制个性化的模板来分开展示########
# 定制一个给领导的日志文件流模板
boss_formatter = logging.Formatter('%(asctime)s - %(message)s') # 文件流写到对应的文件路径
boos = logging.FileHandler("boss.log","a","utf-8") # 把定义的模板添加给领导文件流
boss.setFormatter(boss_formatter) #将领导文件流加入日志绑定
logger.addHandler(boos) 模块random import random
print(random.random()) # 0-1之间的小数
print(random.uniform(1,5)) # 1-5之间的小数 print(random.randint(1,36)) # 随机整数
print(random.randrange(1,10,2)) # randrange()指定范围,仅取奇数
print(random.randrange(0,10,2)) # randrange()指定范围,仅取偶数 import random
lst = [12,3,4,5,6,7]
# 随机取列表中的元素
print(lst[random.randrange(len(lst))]) # 随机取列表的下标,再取元素
print(random.choice(lst)) # 简单方法,直接取 # 随机取列表中的2个元素
print(random.choice(lst),random.choice(lst)) # 会存在重复
print(random.choices(lst,k=2)) # 可以出现多个,但是容易重复
print(random.sample(lst,k=3)) # 可以出现多个,不会出现重复
# 同时,如果列表中存在列表或者其他对象的元素,也会整体取到,不会打散 # 顺序打散(洗牌)
import random
lst = [12,3,4,5,6,7]
random.shuffle(lst) # 顺序打乱 洗牌
print(lst)
# 在此,集合已经不适用,集合已经序列化。 # 验证码,随机大写字母
import random
print(chr(random.randrange(65,91))) # 先随机字母的ASCII码,再取字母 # 生成随机验证码
import random​
def v_code():​
code = ''
for i in range(5):​
num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)])​
return code

print(v_code())

模块 logging random的更多相关文章

  1. python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

    python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess ...

  2. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  3. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  4. Python标准模块--logging

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同 ...

  5. 日志模块logging使用心得

    在应用程序使用中,日志输出对应用维护人员.开发人员判断程序的问题起重要作用. 那么在python中如何定义程序的日志输出? 推荐使用日志模块logging 需求:实现日志内容输出在文件中和控制器中 i ...

  6. python日志模块logging

    python日志模块logging   1. 基础用法 python提供了一个标准的日志接口,就是logging模块.日志级别有DEBUG.INFO.WARNING.ERROR.CRITICAL五种( ...

  7. Python之数据加密与解密及相关操作(hashlib模块、hmac模块、random模块、base64模块、pycrypto模块)

    本文内容 数据加密概述 Python中实现数据加密的模块简介 hashlib与hmac模块介绍 random与secrets模块介绍 base64模块介绍 pycrypto模块介绍 总结 参考文档 提 ...

  8. Python 日志模块logging

    logging模块: logging是一个日志记录模块,可以记录我们日常的操作. logging日志文件写入默认是gbk编码格式的,所以在查看时需要使用gbk的解码方式打开. logging日志等级: ...

  9. python模块之random

    python的随机数模块为random模块,可以产生随机的整数或浮点数.但是这是伪随机数,python解释器会维护一些种子数,然后根据算法算出随机数.linux维护了一个熵池,这个熵池收集噪音的信息, ...

随机推荐

  1. Redis 高可用架构设计(转载)

    转载自:https://mp.weixin.qq.com/s?__biz=MzA3NDcyMTQyNQ==&mid=2649263292&idx=1&sn=b170390684 ...

  2. Break关键字和Continue关键字

    1.Break关键字 在循环体内,只要代码遇到break,程序立马结束当前循环. 当前循环指的是break语句所在的循环体.(直接跳到大括号外) // 例1: 1到10,第一是数字是2的倍数,控制台输 ...

  3. 59、Spark Streaming与Spark SQL结合使用之top3热门商品实时统计案例

    一.top3热门商品实时统计案例 1.概述 Spark Streaming最强大的地方在于,可以与Spark Core.Spark SQL整合使用,之前已经通过transform.foreachRDD ...

  4. mac 下的 tree 命令 终端展示你的目录树结构

    相信很多使用过Linux的用户都用过tree命令,它可以像windows的文件管理器一样清楚明了的显示目录结构.mac 下使用 brew包管理工具安装 tree 前提:安装了homebrew(安装指令 ...

  5. Awesome Go精选的Go框架,库和软件的精选清单.A curated list of awesome Go frameworks, libraries and software

    Awesome Go      financial support to Awesome Go A curated list of awesome Go frameworks, libraries a ...

  6. mysql 过滤分组

    mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...

  7. 【2019.11.13】SDN上机第3次作业

    参考资料:https://www.cnblogs.com/fjlinww/p/11834092.html 实验一 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1 ...

  8. 第10组 Alpha冲刺(4/6)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 学习调用中国天气网API,接近实现天气推送功能 对天气推送的形式进行讨论及重确 ...

  9. HearthBuddy投降插件2019-11-01的使用

    在AutoConcede.cs文件中找到如下代码 private List<int> _winList = new List<int> {0, 2, 4, 6, 8}; 现在的 ...

  10. 【转】怎么去阅读Chromium的源码?

    同样路过一下. 从初学者角度的话,如果是刚开始研究chromium,建议找个老版本chromium来看.新版太大太复杂了. 我建议从github搜下chromium.bb这个项目,是个chromium ...