背景:开发有时候需要查看服务器的当前日志,但是操作系统的权限在运维人员的手里,而这个权限又不便提供给开发,当运维人员要频繁的给开发提供日志的时候,是应该考虑下其他酸爽的办法了。
可以试试这个:
[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介个东西,就做下本文的记录了