日誌分析工具(二分法分段查詢處理)

2021-08-26 01:27:27 字數 1288 閱讀 2614

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 ...