起因

在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中。而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信息。

解决

我们可以通过对有用的信息设置不同颜色来达到醒目的效果,因为我平时都是在linux下开发,而linux终端中的颜色是用转义序列控制的,转义序列是以ESC开头,可以用\033完成相同的工作(ESC的ASCII码用十进制表示就是27,等于用八进制表示的33)。

书写格式,和相关说明如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
格式:\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中使用的方式:

1
2
3
4
5
6
7
8
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)。

最新文章

  1. hbase开发实例
  2. JS巧妙思路
  3. 循序渐进Python3(十一) --5-- 同源策略
  4. STL库的内存配置器(allocator)
  5. 翻译《Writing Idiomatic Python》(四):字典、集合、元组
  6. 关闭 selinux 和防火墙
  7. 八卦一下黄晓明和Angelababy的电话号码
  8. Centos下apache启动时httpd: apr_sockaddr_info_get() failed for 报错
  9. 图片_ _ Bitmap_Drawable_Image?
  10. SQL Server 2008 R2主数据服务安装
  11. 也说_T、_TEXT、TEXT、L
  12. (转)Java Ant build.xml详解
  13. C# WinFrom 编写正则表达式验证类
  14. Codeigniter-实现权限认证
  15. GIT分支管理是一门艺术(转)
  16. java创建目录与文件
  17. angular 按下回车键触发事件
  18. AngularJS进阶(十)AngularJS改变元素显示状态
  19. UVA 11796
  20. Reported time is too far out of sync with master. Time difference of 52692ms &gt; max allowed of 30000ms

热门文章

  1. ubuntu下编译安装mysql记录
  2. Java中的while循环——通过示例学习Java编程(10)
  3. VS2017无法进入断点调试且移动到breakpoint上的时候报错“breakpoint will not currently be hit. the source code is different from original version. ”
  4. Spring Boot相关组件的添加
  5. cocos2d-x-2.2.0_win7+vs2010搭建_eclipse+ndk-r9+cygwin搭建_教程以及编译问题汇总
  6. windows安装ipython
  7. 【MFC】获取文件大小的方法
  8. 使用CSS设置Chrome打印背景色
  9. Java反序列化漏洞详解
  10. DELL R730安装ESXI虚拟化