【发布时间】:2013-07-10 08:53:38
【问题描述】:
我有以下方式的日志:
2013-07-10 17:27:08 +0900 app.log.error.traffic: {"app.log_count":10,"app.log_bytes":9960,"app.log_count_rate":0.5,"app.log_bytes_rate":166.0}
“app.log.error.traffic”部分不会更改,但日期和其他数字会一直更改。也就是说,“2013-07-10”每天都在变化,“08 +0900”也会变化,“app.log.error.traffic:”不会,“app.log_count”也不会变化.
我想制作一个 perl 脚本,如果“app.log_count”旁边的数字超出阈值级别,则会引发警告。
我做了以下:
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
my $file_location = "/var/log/app.log" ;
my $threshold = 3;
open my $infile, "<", $file_location or die("$!: $file_location");
while (<$infile>) {
if (/ REGEX /) {
if ($_ >= $threshold) {
# warning
} else {
# not warning;
}
}
}
close $infile;
但正如您所见,最重要的部分丢失了。我应该在 REGEX 中输入什么?
【问题讨论】:
-
my $file_location = ; my $threshold = ;错误 -
找一个关于正则表达式的教程,一个基本的应该能够教你如何使用正则表达式,如果它失败了,更新你的问题。
-
@Paulchenkiller 我加了一个例子