2012-10-05 28 views
0

我有一個類來處理錯誤。獲取類調用的錯誤行號和文件名

我想調用該類的公共靜態方法來記錄我的RPC服務器向我拋出的錯誤,而不需要使用__LINE__命令。

事情是這樣的:

class errorHander{ 
    public static $errors = array(); 
    public static function logError($message){ 
     self::$errors[] = array('message', NEEED SOMHOW TO GET THE calling class, get the file in which the error ocured); 
    } 
} 

這是最重要的,沒有從被調用函數傳遞文件的位置。

所以像errorHander:logError(message, location)這樣的東西是不行的。

+0

你得到了什麼樣的錯誤?異常?或RPC服務器返回一些錯誤響應? –

回答

0

PHP Error將能夠給你這個信息(也將從周圍太行顯示的代碼)。

0

那麼這顯然取決於你有什麼樣的錯誤。

你可能想看看異常處理。 PHP異常類提供了getLine()和getTrace()方法。這可能是你正在尋找的。

+0

我marow在php中的一個nrmal錯誤,但服務器正在處理rpc。 – Sangoku

+0

對不起,不知道你想表達什麼。 – arkascha

0

異常:: getLine和getFile方法,我不想處理異常的方式來做到這一點。 繼承人蔘考。 http://www.php.net/manual/en/class.exception.php

+0

這個類同類似,但我需要知道調用錯誤類的類而不更改調用該錯誤的類中的代碼。 – Sangoku

+1

getTrace這樣做,但真的爲什麼你不能編輯調用錯誤的類? – geekman

0

LOGERROR()只需要一個參數不是2

做這樣的事情:

class errorHander{ 
     public static $errors = array(); 
     public static function logError($message){ 
      self::$errors[] = array('message'=>$message); 
     } 
    } 


    errorHander:logError("This is a no-yes go") //This should log 

    echo errorHander:errors[0]["message"]; //print it 

希望它有助於

+0

這是當前系統的工作原理。我想弄清楚調用靜態方法的類的名字。 – Sangoku

相關問題