我日誌進來的方式如下:的Perl:正則表達式,用於讀取日誌語句
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中放什麼?
'我的$ file_location =; my $ threshold =; '是錯的 – 2013-07-10 09:01:58
在正則表達式中找到一個教程,一個基本的教程應該能教你如何使用正則表達式,如果它失敗了,更新你的問題。 – Jerry
@Paulchenkiller我添加了一個例子 – ado