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

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

创新互联公司自2013年创立以来,先为徐水等服务建站,徐水等地企业,进行企业商务咨询服务。为徐水企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

一眼可知,类实现的是一个简单的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转换后再记日志。

标题名称:Python日志需要我们不断的学习
浏览路径:http://www.shufengxianlan.com/qtweb/news14/538864.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联