標籤:
起因
在開發項目過程中,為了方便調試代碼,經常會向stdout中輸出一些日誌,預設的這些日誌就直接顯示在了終端中。而一般的應用伺服器,第三方庫,甚至伺服器的一些通告也會在終端中顯示,這樣就攪亂了我們想要的資訊。
解決
我們可以通過對有用的資訊設定不同顏色來達到醒目的效果,因為我平時都是在linux下開發,而linux終端中的顏色是用逸出序列控 制的,逸出序列是以ESC開頭,可以用\033完成相同的工作(ESC的ASCII碼用十進位表示就是27,等於用八進位表示的33)。
書寫格式,和相關說明如下:
| 12345678910111213141516171819202122232425 |
格式:\033[顯示方式;前景色彩;背景色m 說明:前景色彩 背景色 顏色---------------------------------------30 40 黑色31 41 紅色32 42 綠色33 43 黃色34 44 藍色35 45 紫紅色36 46 青藍色37 47 白色顯示方式 意義-------------------------0 終端預設設定1 高亮顯示4 使用底線5 閃爍7 反白顯示8 不可見 例子:\033[1;31;40m <!--1-高亮顯示 31-前景色彩紅色 40-背景色黑色-->\033[0m <!--採用終端預設設定,即取消顏色設定--> |
下面是我在python中使用的方式:
| 12345678 |
print ‘\033[1;31;40m‘print ‘*‘ * 50print ‘*HOST:\t‘, request.META.get(‘REMOTE_ADDR‘)print ‘*URI:\t‘, request.pathprint ‘*ARGS:\t‘, QueryDict(request.body)print ‘*TIME:\t‘, time.time() - request.start_timeprint ‘*‘ * 50print ‘\033[0m‘ |
如下:
當然這隻是一種簡單的實現方式,而且僅在linux下有效,其它方式可以使用termcolor,或者參考ipython的console實現(pyreadline)。
python display color output