author: selfimpr
blog:
mail: [email protected]
需求:日誌檔案按照時間順序記錄,每次只需要按照時間分析其中某段的日誌內容。當此條件下,使用sed,awk等工具是需要掃瞄全檔案的,因此,有了這個小東西,按照檔案內容二分查詢。
該程式未經測試,有不合理,不正確,效能不佳需要改進的地方,請直言。。。
二分查詢庫程式:
#! /usr/bin/php
<?php
function binary_find_analysis($filename, $process_func, $compare_func)
function build_arguments($extra_args)
function goto_correct_line($fp, $file_size, $begin, $end, $compare_func, $extra_args)
function goto_correct_head($fp, $file_size, $compare_func, $extra_args)
return true;
}function goto_prev_line_head($fp, $file_size)
function goto_line_head($fp, $file_size)
function goto_nchar($fp, $file_size, $n)
我們的日誌格式為:
時間(y-m-d h:i:s) 日誌級別 日誌編號 日誌內容
下面是根據自己的業務寫的乙個簡單的呼叫處理
function log_process($data)
function timecmp($a, $b)
define('log_parse_pattern', '/^(?p\d-\d-\d \d:\d:\d)(?>\s+)(?p(?>\w+))(?>\s+)(?p(?>\d+))(?>\s+)(?p(?>.*))$/');
#為strtotime設定時區
date_default_timezone_set('asia/shanghai');
$time = strtotime('2011-07-28 00:10:00');
binary_find_analysis('log_2011-07-28-00', 'log_process', 'timecmp', $time);
日誌分析工具(二分法分段查詢處理)
author selfimpr blog mail lgg860911 yahoo.com.cn 需求 日誌檔案按照時間順序記錄,每次只需要按照時間分析其中某段的日誌內容。當此條件下,使用sed,awk等工具是需要掃瞄全檔案的,因此,有了這個小東西,按照檔案內容二分查詢。該程式未經測試,有不合理,不...
C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...