UltraEdit+RegExp+Bat+Excel 从海量日志中提取信息

前言

使用常用工具,从800M的日志中提取13K的信息是个挑战.  

最近被系统性能问题折磨的不行了. 没隔多久客户就说系统响应太慢了(汗).据分析大概是数据库连接的问题.

后台有一堆的日志信息, 每天的日志量为100多M, 日志里面有输出连接的信息,格式为:开始释放连接\r\n, XXX有N个连接被释放\r\n.

需求

把后台的这些数据库连接数,做成一个报表,形成数据库连接数变化的趋势图.

 

工具

 UltraEdit, 正则表达式

用法

UltraEdit-->资源管理器-->右键-->在该目录下的文件中查找替换

原理

用正则表达式进行查找替换

步骤

 

  1. 标识出数据行 (查找替换时在其前面加#字符)----正则表达式不能表达字符串否定的逻辑关系, 只好用此变通办法
  2. 去掉非#开头的行
  3. 提取日期时间和连接数信息---用括号()分组的方法, .+(日期 时间).+连接数, 替换成: \1\t\2
  4. 将多个日志文件拼接在一起---编写bat文件 内容{@for %%f in (server.log.*) do type %%f >>xxx.log}
  5. 将拼接后的数据copy到excel---excel支持\t分割的数据
  6. 用excel生成折线图---趋势图完成

改进

使用Ultra Edit自带的JavaScript脚本功能限制 查找替换的批处理, 参见 Ultra Edit 14.10帮助文档-->入门-->脚本命令.  

后记

多工具联合使用, 充分发挥每种工具的长处
工具只有在使用中才能体现它的价值. 

 

你可能感兴趣的:(JavaScript,正则表达式,Excel,脚本,F#)