PHP正则解析|提取|过滤标准的syslog日志文件内容,该怎么解决
程序员文章站
2024-02-08 12:10:16
...
PHP正则解析|提取|过滤标准的syslog日志文件内容
日志内容:
Dec 30 15:10:48 root my: 192.168.1.51 test 退出邮件管理系统
Dec 30 15:11:23 root my: 192.168.1.51 stella 退出邮件管理系统
...
通过正则逐行提取有用信息,并返回数组
...
解析后:
array(
[0]=>array(
[0]=>Dec 30 15:10:48,
[1]=>root,
[2]=>my,
[3]=>192.168.1.51,
[4]=>test,
[5]=>退出邮件管理系统
),
[1]=>array(
[0]=>Dec 30 15:11:23,
[1]=>root,
[2]=>my,
[3]=>192.168.1.51,
[4]=>stella ,
[5]=>退出邮件管理系统
),
);
求,解析过程
------解决方案--------------------
分析日志文件不宜使用正则表达式(效率太低)
(
[0] => Array
(
[0] => Dec
[1] => 30
[2] => 15:10:48
[3] => root
[4] => 192.168.1.51
[5] => test
[6] => 退出邮件管理系统
)
[1] => Array
(
[0] => Dec
[1] => 30
[2] => 15:11:23
[3] => root
[4] => 192.168.1.51
[5] => stella
[6] => 退出邮件管理系统
)
)
日志内容:
Dec 30 15:10:48 root my: 192.168.1.51 test 退出邮件管理系统
Dec 30 15:11:23 root my: 192.168.1.51 stella 退出邮件管理系统
...
通过正则逐行提取有用信息,并返回数组
...
解析后:
array(
[0]=>array(
[0]=>Dec 30 15:10:48,
[1]=>root,
[2]=>my,
[3]=>192.168.1.51,
[4]=>test,
[5]=>退出邮件管理系统
),
[1]=>array(
[0]=>Dec 30 15:11:23,
[1]=>root,
[2]=>my,
[3]=>192.168.1.51,
[4]=>stella ,
[5]=>退出邮件管理系统
),
);
求,解析过程
------解决方案--------------------
分析日志文件不宜使用正则表达式(效率太低)
$fn = 'sys.log';Array
$fp = fopen($fn, 'r');
while(! feof($fp)) {
$r[] = fscanf($fp, "%s %s %s %s my: %s %s %s\n");
}
print_r($r);
(
[0] => Array
(
[0] => Dec
[1] => 30
[2] => 15:10:48
[3] => root
[4] => 192.168.1.51
[5] => test
[6] => 退出邮件管理系统
)
[1] => Array
(
[0] => Dec
[1] => 30
[2] => 15:11:23
[3] => root
[4] => 192.168.1.51
[5] => stella
[6] => 退出邮件管理系统
)
)
相关文章
相关视频
上一篇: 第 11 章 全局属性和其他 - 水之原