把所有的业务日志通过scribe收集上来后,需要给项目开发人员一个查询业务日志的页面,方便他们查日志也给我们运维节约时间,我们可以用节约的时间做更多更有意义的事。写的这个页面很简单后端用的是Django,前端展示用的是基于bootstrap的Metronic模板,因为不需要权限控制也不要登录验证故没有用到数据库。
用一个业务日志查询页面来介绍下,其它业务日志查询的逻辑都一样甚至渲染的模板都几乎一样,唯一不同的是渲染模板传递的参数有小差异。
实现的功能很简单:可以查询每天最新的日志如最新100行;根据日期查询某天日志最后100行;根据一个或多个关键字查询日志并显示最新的200行结果;每次查询的结果都可以通过页面的下载按钮下载到本地供日后分析;页面上显示的结果按时间排序,最新的显示在最前面。
1、渲染模板,每个业务日志模板都由一个基础模板和各自独有的模板构成。
基础模板bash.html
1 |
|
每个项目还有自己独有的模板且继承bash.html,独立模板用来重写块,独立的模板几乎一样就举一例。
1 | {% extends "base.html" %} |
2、视图函数,接收前端页面的POST请求并根据不同的请求条件,使用日志查询函数searchKey, noKeys, readLine查询日志,然后将结果渲染后返回给前端页面。
1 | #coding=utf-8 |
3、日志查询函数。每次先将一定条件的查询结果保存到一个新的文件,然后再从查询结果中读取最新的100行显示,这个新的文件可以通过页面的下载链接上下载到本地。
1 | #!/usr/bin/python |