標籤:
起因
在開發項目過程中,為了方便調試代碼,經常會向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 ‘*‘ * 50 print ‘*HOST:\t‘ , request.META.get( ‘REMOTE_ADDR‘ ) print ‘*URI:\t‘ , request.path print ‘*ARGS:\t‘ , QueryDict(request.body) print ‘*TIME:\t‘ , time.time() - request.start_time print ‘*‘ * 50 print ‘\033[0m‘ |
如下:
當然這隻是一種簡單的實現方式,而且僅在linux下有效,其它方式可以使用termcolor,或者參考ipython的console實現(pyreadline)。
python display color output