Python SimpleHTTPServer 实现日志简单的web展示

背景:开发有时候需要查看服务器的当前日志,但是操作系统的权限在运维人员的手里,而这个权限又不便提供给开发,当运维人员要频繁的给开发提供日志的时候,是应该考虑下其他酸爽的办法了。

可以试试这个:

[weblogic@localhost logs]$ 10.10.0.86^C
[weblogic@localhost logs]$ ls
abc.out  abcd.log
[weblogic@localhost logs]$ python -m SimpleHTTPServer 6789

Serving HTTP on 0.0.0.0 port 6789 ...

(注:6789是端口号,不写默认使用8000端口)


此时,打开浏览器,http://10.10.0.86:6789

确实看到了当前的路径下的文件列表,点开发现弹出下载提示框,其实也就是把out、log日志发布出去提供下载而已...



然而我想在线查看?当然也是可以的,不过要改一下源码:

[weblogic@localhost logs]$ ls
abc.out  abcd.log
[weblogic@localhost logs]$ ls /usr/lib64/python2.6/SimpleHTTPServer.py -al
-rw-r--r--. 1 root root 7422 Jan 22  2014 /usr/lib64/python2.6/SimpleHTTPServer.py
[weblogic@localhost logs]$ cp /usr/lib64/python2.6/SimpleHTTPServer.py ./
[weblogic@localhost logs]$ ls
abc.out  abcd.log  SimpleHTTPServer.py
[weblogic@localhost logs]$ 


源码:


需要增加out、log的配置,把这两种类型的日志当成普通文本输出到浏览器展示。

     extensions_map.update({
         '': 'application/octet-stream', # Default
         '.py': 'text/plain',
         '.c': 'text/plain',
         '.h': 'text/plain',
         '.out': 'text/plain',
         '.log': 'text/plain',
         })



再次启动

[weblogic@localhost logs]$ python -m SimpleHTTPServer 6789
Serving HTTP on 0.0.0.0 port 6789 ...


是不是很开心?


日志有更新?

[weblogic@localhost logs]$ ls
abc.out  abcd.log  SimpleHTTPServer.py
[weblogic@localhost logs]$ echo "Hello World" >> abc.out 
[weblogic@localhost logs]$ cat abc.out 
abc
test
xublog
Hello World
[weblogic@localhost logs]$


刷新浏览器即可查看最新日志


如此,你可以结合浏览器的搜索功能进行日志检索了(如果是乱码,注意切换浏览器字符集设置)。


小结:

1、当然这个SimpleHTTPServer还可以作文件共享;

2、如果你的日志文件没有切分,一个文件几个G大小的日志,那只能呵呵;

3、其实就是将日志以文本的方式传输到浏览器展示,至于性能嘛,勉强能用;

4、什么?你有更高级的日志管理系统?求赐教啊...


题外:我毕业后第一份正式的工作,是做运维的,经历了项目规划到实施到上线到后期运维的整个过程,期间遇到很多挑战,正是这些挑战才能锻炼人啊。

开发会拿一个前台的报错信息,找运维的拿应用的日志,其实这样效率是不高的。之前计划用mongodb存储日志,然而由于该计划申请的存储过大被废。

为了能够找到日志、统计交易耗时、搜索topSql,也学了一些shell命令。最近在学python,看到SimpleHTTPServer介个东西,就做下本文的记录了




已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页