2015-03-31 60 views
1

我想獲得一個日誌分析器工作https://github.com/kassner/log-parser,並在第一次試驗,我得到一個錯誤 - >PHP未定義功能日誌分析器輸出錯誤

代碼:

<?php 

$parser = new \Kassner\LogParser\LogParser.php(); 

$lines = file('/var/log/apache24/error.log', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
foreach ($lines as $line) { 
    $entry = $parser->parse($line); 
} 
echo $entry; 
?> 

錯誤輸出:

Fatal error: Call to undefined function php() in /usr/home/www/parselog.php on line 3 

如何讓logparser類正確輸出?

+0

該OP在評論中說*報價並沒有幫助。我已經放棄了垃圾並將其刪除。現在嘗試python。*。所以這個問題可以被關閉,因爲用戶放棄了。 – 2015-04-01 13:06:30

回答

0

請仔細閱讀您在問題中鏈接的文檔,您將看到該類是從其名稱空間加載的,在加載LogParser類時,不應使用.php擴展名。所以,你必須從第三行刪除.php

$parser = new \Kassner\LogParser\LogParser(); 

PHP documentation about importing namespaces


它爲我工作。我安裝了作曲家的依賴:

composer require kassner/log-parser:~1.0 

而且在log.php文件中使用代碼:

<?php 
require_once('vendor/autoload.php'); 

$parser = new \Kassner\LogParser\LogParser(); 

$lines = file('/var/log/apache2/access.log', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
foreach ($lines as $line) { 
    $entry = $parser->parse($line); 
} 
echo $entry; 

然後我執行它:

php -f log.php 

它拋出一個錯誤:

PHP Fatal error: Uncaught exception 'Kassner\LogParser\FormatException' with message '127.0.0.1 - - [01/Apr/2015:00:32:01 +0200] "GET /... HTTP/1.1" 200 1753 "-" "Mozilla/5.0 ... Firefox/35.0"' in /.../vendor/kassner/log-parser/src/Kassner/LogParser/LogParser.php:73

錯誤是關於我的access.log文件的格式,但LogParser類已成功加載。

+0

同樣的問題,如果.php被丟棄 - >致命錯誤:在'/ usr/home/www/logparser/get - > https://bpaste.net/show/590385584abf – mine 2015-03-31 21:16:43

+0

錯誤說'使用未定義的常量供應商',你必須在'vendor/autoload.php'之前和之後添加一些引號。 – 2015-03-31 22:17:47

+0

報價不起作用。我已經放棄了垃圾並將其刪除。現在嘗試python。 – mine 2015-03-31 22:22:50