前言
使用常用工具,从800M的日志中提取13K的信息是个挑战.
最近被系统性能问题折磨的不行了. 没隔多久客户就说系统响应太慢了(汗).据分析大概是数据库连接的问题.
后台有一堆的日志信息, 每天的日志量为100多M, 日志里面有输出连接的信息,格式为:开始释放连接\r\n, XXX有N个连接被释放\r\n.
需求
把后台的这些数据库连接数,做成一个报表,形成数据库连接数变化的趋势图.
工具
UltraEdit, 正则表达式
用法
UltraEdit-->资源管理器-->右键-->在该目录下的文件中查找替换
原理
用正则表达式进行查找替换
步骤
- 标识出数据行 (查找替换时在其前面加#字符)----正则表达式不能表达字符串否定的逻辑关系, 只好用此变通办法
- 去掉非#开头的行
- 提取日期时间和连接数信息---用括号()分组的方法, .+(日期 时间).+连接数, 替换成: \1\t\2
- 将多个日志文件拼接在一起---编写bat文件 内容{@for %%f in (server.log.*) do type %%f >>xxx.log}
- 将拼接后的数据copy到excel---excel支持\t分割的数据
- 用excel生成折线图---趋势图完成
改进
使用Ultra Edit自带的JavaScript脚本功能限制 查找替换的批处理, 参见 Ultra Edit 14.10帮助文档-->入门-->脚本命令.
后记
多工具联合使用, 充分发挥每种工具的长处
工具只有在使用中才能体现它的价值.