過去幾天我一直陷在這裏。我已經搜索和搜索,但只發布了部分作品的示例和技巧,其中沒有一個是循環的。基本上我想要做的是爲Apache日誌文件做一個過濾器。通過以下代碼,我可以將Apache日誌分爲基本塊。使用這些塊我想創建過濾器。在foreach循環中過濾數組
<?php
$out = array();
exec('tail -n 5 /var/log/httpd/error_log',$out);
foreach($out as $output){
preg_match('~^\[(.*?)\]~',$output,$date);
preg_match('~\ \[([a-z]*?)\] ~',$output,$type);
preg_match('~\ \[client ([0-9\.]*)\]~',$output,$client);
preg_match('~[a-z\A-Z\.0-9][^\]]*$~',$output,$message);
echo "</br>";
echo "Date chunk = ";
print_r($date[0]);
echo "</br>";
echo "Type chunk = ";
print_r($type[0]);
echo "</br>";
echo "Client chunk =";
print_r ($client[0]);
echo "</br>";
echo "Message chunk = ";
print_r ($message[0]);
echo "</br>";
}
?>
這是一個截圖。
http://i.imgur.com/BAZaWDc.png
在apache的日誌文件,則類型塊可以是[錯誤]或[注意],我想有一個方法來過濾日誌文件並進行查看。例如,我只希望包含[error]類型的日誌出現,或者鍵入[Notice]出現,即使日期塊可以用作過濾器來查看來自不同日子的日誌。我可以做一個PHP下拉選項,使用戶選擇[錯誤]或[通知],但我如何使用它們篩選出日誌並查看它們?