Python日志需要我们不断的学习

开发 后端
Python日志有广泛的应用范围,我们需要不断的进行相关的学习。下面我们就看看相关代码如何生成。希望对大家有所帮助。

Python日志在不断的发展中需要我们不断的进行学习。只有不断的进行学习才能更好的掌握相关的使用方法。下面我们就详细的介绍相关代码的书写方式。希望对大家有所帮助。

一眼可知,类实现的是一个简单的template模式,定义了setup, handle, finish让继承者重载,模式方法__init__则定义了三个方法的调用顺序同时保证三个方法的运行。 很显然,如果我们要在退出时关闭连接,重定义finish是一个很自然的行为。

  1. def finish(self):  
  2. self.request.close() 

第二个问题,如何记日志。Python有日志模块logging。

 

 

  1. import logging  
  2. logging.basicConfig(level=logging.DEBUG,  
  3. format='%(asctime)s %(levelname)s %(message)s',  
  4. filename='log.txt',  
  5. filemode='a+'

不过实际使用中需要做一点点的补充。因为在多线程程序中,要记录日志需要线程相关的唯一ID来识别一些东西。我没有找到直接的线程ID(哪位兄弟找到了请告知),但Python中有一个名为id的内建函数,用来返回一个对象的identity (注1)。将要记录的信息预定义一个模板,我们就能得到一个漂亮的输出了。

  1. def LogTemplate(self, s):  
  2. return '[id.' + str(id(self.request)) + ']: ' + str(s)def Log(self, s):  
  3. ss = self.LogTemplate(s)  
  4. print ss  
  5. logging.info(ss)  
  6. def LogErr(self, s):  
  7. ss = self.LogTemplate(s)  
  8. print ss  
  9. logging.error(ss) 

下面我们可以这样写了

  1. def setup(self):  
  2. self.Log('进入处理线程')  
  3. def finish(self):  
  4. self.request.close()  
  5. self.Log("退出处理线程") 

另外模块binascii对Python日志也很有用,我就会用到binascii.b2a_hex来帮助把一串二进制转成可见的ASCII,象接收到的数据就***用b2a_hex转换后再记日志。

【编辑推荐】

  1. Python循环语句使用中异常现象的处理
  2. Python循环语句中whlie和for的应用
  3. Python if应用具体信息介绍
  4. Python编码对解决疑难问题的具体方法
  5. Python语言教程算术运算与算术表达式的介绍
责任编辑:张浩 来源: 电子工业出版社
相关推荐

2010-03-10 15:27:40

Python函数

2022-05-17 11:05:16

机器学习人工智能

2018-06-14 21:03:41

数据库MySQL日志类型

2018-06-27 10:14:21

MySQL日志‘类型

2012-07-12 10:53:34

Firefox浏览器

2022-03-09 13:20:43

大数据技术企业

2020-11-18 10:15:01

量子计算

2019-08-02 11:53:50

Android开发学习

2012-07-22 15:30:33

非程序

2013-07-18 09:21:32

代码文档

2018-05-30 14:49:51

编程语言API语法

2017-05-24 17:08:29

OLAP

2017-02-08 10:01:13

大数据ETL技术

2020-12-04 09:41:36

C编程语言替换C

2020-04-06 14:45:22

云计算边缘计算网络

2020-07-22 11:41:14

数据架构大数据技术

2022-12-01 14:43:56

物联网智慧城市

2017-08-24 08:18:00

2016-01-15 11:10:58

智能汽车车联网硬件技术

2023-09-05 09:49:03

点赞
收藏

51CTO技术栈公众号