在開發項目過程中,為了方便調試代碼,經常會向stdout中輸出一些日誌,預設的這些日誌就直接顯示在了終端中。而一般的應用伺服器,第三方庫,甚至伺服器的一些通告也會在終端中顯示,這樣就攪亂了我們想要的資訊。
我們可以通過對有用的資訊設定不同顏色來達到醒目的效果,因為我平時都是在linux下開發,而linux終端中的顏色是用逸出序列控制的,逸出序列是以ESC開頭,可以用\033完成相同的工作(ESC的ASCII碼用十進位表示就是27,等於用八進位表示的33)。
書寫格式,和相關說明如下:
複製代碼 代碼如下:
格式:\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
\033[0m
下面是我在python中使用的方式:
複製代碼 代碼如下:
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)。