新聞中心
Python日志在不斷的發(fā)展中需要我們不斷的進(jìn)行學(xué)習(xí)。只有不斷的進(jìn)行學(xué)習(xí)才能更好的掌握相關(guān)的使用方法。下面我們就詳細(xì)的介紹相關(guān)代碼的書寫方式。希望對大家有所幫助。

創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為徐水等服務(wù)建站,徐水等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為徐水企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
一眼可知,類實(shí)現(xiàn)的是一個(gè)簡單的template模式,定義了setup, handle, finish讓繼承者重載,模式方法__init__則定義了三個(gè)方法的調(diào)用順序同時(shí)保證三個(gè)方法的運(yùn)行。 很顯然,如果我們要在退出時(shí)關(guān)閉連接,重定義finish是一個(gè)很自然的行為。
- def finish(self):
- self.request.close()
第二個(gè)問題,如何記日志。Python有日志模塊logging。
- import logging
- logging.basicConfig(level=logging.DEBUG,
- format='%(asctime)s %(levelname)s %(message)s',
- filename='log.txt',
- filemode='a+')
不過實(shí)際使用中需要做一點(diǎn)點(diǎn)的補(bǔ)充。因?yàn)樵诙嗑€程程序中,要記錄日志需要線程相關(guān)的唯一ID來識別一些東西。我沒有找到直接的線程ID(哪位兄弟找到了請告知),但Python中有一個(gè)名為id的內(nèi)建函數(shù),用來返回一個(gè)對象的identity (注1)。將要記錄的信息預(yù)定義一個(gè)模板,我們就能得到一個(gè)漂亮的輸出了。
- def LogTemplate(self, s):
- return '[id.' + str(id(self.request)) + ']: ' + str(s)def Log(self, s):
- ss = self.LogTemplate(s)
- print ss
- logging.info(ss)
- def LogErr(self, s):
- ss = self.LogTemplate(s)
- print ss
- logging.error(ss)
下面我們可以這樣寫了
- def setup(self):
- self.Log('進(jìn)入處理線程')
- def finish(self):
- self.request.close()
- self.Log("退出處理線程")
另外模塊binascii對Python日志也很有用,我就會(huì)用到binascii.b2a_hex來幫助把一串二進(jìn)制轉(zhuǎn)成可見的ASCII,象接收到的數(shù)據(jù)就***用b2a_hex轉(zhuǎn)換后再記日志。
當(dāng)前文章:Python日志需要我們不斷的學(xué)習(xí)
文章URL:http://fisionsoft.com.cn/article/cociepp.html


咨詢
建站咨詢
