控制台模块python_04_python常用模块
1. 日志相关项:
1> 在代码中添加日志,然后输出到文件中;
2> 用于记录代码逻辑执行过程,当报错异常时用于分析问题;
3> 定义日志收集器:要从代码当中按照要求,收集对应的日志,并输出到渠道当中;
a> 要收集哪些级别以上的日志?
b> 日志以什么样的格式显示?
c> 日志要输出到哪里去?
4> 日志级别(Level): debug 调试 - info 基本信息 - warning 警告 - error 报错 - critical(FATA) 严重错误
5> 日志显示的格式(Formatter):时间,日志级别,代码文件,第几行,信息
6> 日志输出渠道(Handle):文件(FileHandle)、控制台(StreamHandle)
2. logging模块:
1> 有一个默认的日志收集器:root,可以自己设定
2> 收集的是warning及warning以上级别的日志
3> 日志格式:日志级别 收集器的名字 输出的内容
4> 输出渠道:控制台/文件
1 importlogging2
3
4 classStudent:5
6 identify = "student"
7
8 def __init__(self,name,age,sex,cn_score,math_score,en_score):9 self.name =name10 self.age =age11 self.sex =sex12 self.cn_score =cn_score13 self.math_score =math_score14 self.en_score =en_score15 logging.info("hello,logging!!!")16
17 defget_sum_of_score(self):18 sum = self.cn_score + self.math_score +self.en_score19 logging.debug("{} 的语数外总分为:{}".format(self.name, sum))20 returnsum21
22 defget_avg_of_score(self):23 avg = self.get_sum_of_score()/3
24 logging.warning("{} 的语数外平均分为:{}".format(self.name, avg))25
26 defprint_stu_info(self):27 logging.warning("我的名字叫{},年龄:{},性别:{}".format(self.name,self.age,self.sex))28
29 bing = Student("冰",20,"男",80, 88, 77)30 bing.get_sum_of_score()31 bing.get_avg_of_score()
logging实例
3. 定制输出日志
1> 设置日志收集对象: logger = logging.getLogger(日志名字)
2> 设置日志级别: logger.setLevel(日志级别),一般为INFO
3> 设置日志格式:
a> 自定义日志格式:fmt_str = "%(asctime)s %(name)s %(levelname)s %(filename)s [%(lineno)d] %(message)s"
b> 实例化一个日志格式类:formatter = logging.Formatter(fmt_str)
4> 指定日志输出渠道 - 控制台:
a> 输出到控制台(渠道):stream_handle = logging.StreamHandler()
b> 设置渠道当中的日志显示格式:stream_handle.setFormatter(formatter)
5> 指定日志输出到文件:stream_handle = logging.StreamHandler() file_handle = logging.FileHandler(文件名)
a> 输出到文件(渠道):file_handle = logging.FileHandler(文件名)
b> 设置渠道当中的日志显示格式:file_handle .setFormatter(formatter)
6> 将渠道与日志收集器绑定起来:logger.addHandler(stream_handle ) 或 logger.addHandler(file_handle )
1 importlogging2
3 #第一步: 设置日志收集器
4 logger = logging.getLogger('自动化')5
6 #第二步:设置日志级别
7 logger.setLevel('INFO')8
9 #第三步:设置日志格式
10 fmt_str = "%(asctime)s %(name)s %(levelname)s %(filename)s [%(lineno)d] %(message)s"
11 formatter =logging.Formatter(fmt_str)12
13 ## 第四步 第1种:指定日志渠道 - 控制台
14 #stream_handle = logging.StreamHandler()
15 #stream_handle.setFormatter(formatter)
16 #第四步 第2种:指定日志渠道 - 文件
17 file_handle = logging.FileHandler('mylog.txt',encoding='utf-8')18 file_handle.setFormatter(formatter)19
20 ## 第五步 第1种: 渠道与日志收集器绑定
21 #logger.addHandler(stream_handle)
22 #第五步 第2种: 渠道与日志收集器绑定
23 logger.addHandler(file_handle)24
25 #第六步: 定制的日志应用于输出日志信息
26 if __name__ == "__main__":27
28 logger.info('这是自己定制的基本日志信息')29 logger.warning('这是一条警告信息')30 logger.error('这是一条错误信息')31 logger.critical('这是一条严重错误的信息')
定制日志
控制台模块python_04_python常用模块相关推荐
- python shelve模块_python常用模块之shelve模块
python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...
- python ansible模块_ansible常用模块
一.ansible常用模块 模块是Ansible执行的最小单位,可以是由Python编写,也可以是Shell编写,也可以是由其他语言编写. 一.ping模块 测试连接可通性,没有参数.通的话返回pon ...
- python用什么来写模块-Python常用模块——模块介绍与导入
Python常用模块--模块介绍与导入 一.什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分 ...
- python正则表达式模块_Python常用模块——正则表达式re模块
Python常用模块--正则表达式re模块 引子 请从以下文件里取出所有的手机号 姓名 地区 身高 体重 电话 况咏蜜 北京 171 48 13651054608 王心颜 上海 169 46 1381 ...
- python常用运维模块_python常用模块之一
sys模块: sys模块是提供关于python本身的详细内在的信息的模块. sys.executable变量,它包含python解释器的路径 sys.platform变量,告诉我们现在处于什么操作系统 ...
- python3常用模块_Python3 常用模块1
os模块 通过os模块我们可以与操作系统交互, 控制文件和文件夹 对文件夹操作 # 判断是否为文件夹 os.path.isdir() # 创建文件夹 os.mkdir() # 删除文件夹 os.rmd ...
- python3常用模块_Python3 常用模块
一.time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们 ...
- python pp模块_python常用模块
1.re模块 re模块用于对python的正则表达式的操作 1.1 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物 ...
- python loggeru模块_python常用模块——logger模块
python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的python应用. python使用logging模块记录日志涉及四个主要的类: ...
- python有哪几种模块_python常用模块有哪些?
本文和大家分享的主要是python中常用几大模块相关内容,一起来看看吧,希望对大家学习python有所帮助. 一.时间模块(time) 在学习模块之前我们所接触的时间模块 import time ti ...
最新文章
- Docker 学习笔记之二
- 信号处理:傅立叶变换的波形分辨率和频率分辨率
- 春节礼品:iPhone 11 抱回家
- 几维安全Javascript代码混淆(js加密)在线使用说明
- group by很多字段是不是会很慢_3分钟短文 | MySQL在分组时,把多列合并为一个字段!
- python: 大规模数据集的读存技巧
- java缓存管理,一级缓存和二级缓存
- 【自动控制原理】 时域分析法
- 最新版chrome安装adblock插件
- 如何批量等比例缩放图片尺寸?
- 3d vision可以卸载吗_3D Vision是什么
- AMD intel CPU 型号对比
- 学术-物理-维空间:一维空间
- 操作系统——文件管理学习笔记
- 导致谷歌账号停用的原因
- 多态、虚函数举例(人与复读机)
- 团体程序设计天梯赛 L1-题目
- 计算机工程学院文艺例会,信息科学与工程学院学生会学生会全体例会暨部门风采展示大会...
- 阿里云性能真的是差到了极点……
- 推荐几款好用的Mysql图形化管理工具
热门文章
- 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
- 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_05.入门程序之入门代码编写
- 阶段3 1.Mybatis_12.Mybatis注解开发_6 mybatis注解开发一对一的查询配置
- 【HDU5409】CRB and Graph 边双联通 子树最值
- 锦囊5-斐波那契数列
- shell基础09 归档数据
- SpringMVC:学习笔记(7)——验证器(JSR303)
- 二分法和牛顿迭代实现开根号函数:OC的实现
- 20140115-URL编码与解码
- SQLServer 分组查询相邻两条记录的时间差