2010-10-20 4 views
0

Je cherche à appeler une fonction de journal/débogage d'erreur personnalisée à la fin de chaque fonction.exécuter automatiquement une fonction à la fin des fonctions dans PHP

exemple:

  • je veux appeler error_log(__METHOD__);
  • Je veux echo $query;
  • Afficher le temps d'exécution, etc ..

à la fin de chaque fonction à des fins de débogage sans avoir appeler cette fonction personnalisée à chaque fois.

très apprécié.

Répondre

1

après beaucoup RTM je devais utiliser debug_backtrace(); même si elle est coûteuse.

est ici comment je l'ai fait:

// debug(debug_backtrace(),$query); 
// $query is optional 
define('DEBUG',true); 

function debug($trace,$query = null) { 
    if(DEBUG) { 
     $caller=array_shift($trace); 
     error_log("Initiating class: " . $caller['class']); 
     error_log("Calling function: " . $caller['function']); 
     error_log("In file: " . $caller['file']); 
     error_log("@ line: " .$caller['line']); 
     if(isset($query)) 
     { 
      error_log("Performing Query: " .$query); 
     } 
     error_log("---"); 
    } 
    else 
     exit(); 
} 

et à la fin de chaque fonction i ajouter ce qui suit:

function init_userInfo($ai, $v) { 
    $this->user[$ai] = $v; 
    debug(debug_backtrace()); 
} 

ou si la fonction a une requête SQL:

function insertQuery($query) 
{ 
    mysql_query($query) 
     or die("MySQL Error: " . mysql_error()); 
    debug(debug_backtrace(),$query); 

} 

la sortie est généralement comme ceci dans le php_error.log:

[20-Oct-2010 19:02:07] Initiating class: Db 
[20-Oct-2010 19:02:07] Calling function: selectQuery 
[20-Oct-2010 19:02:07] In file: /Code/classes/user.class.php 
[20-Oct-2010 19:02:07] @ line: 100 
[20-Oct-2010 19:02:07] Performing Query: SELECT * FROM user WHERE uid=(3) LIMIT 1 
[20-Oct-2010 19:02:07] --- 
[20-Oct-2010 19:02:07] Initiating class: User 
[20-Oct-2010 19:02:07] Calling function: htmlform_addUserInfo 
[20-Oct-2010 19:02:07] In file: /Code/index.php 
[20-Oct-2010 19:02:07] @ line: 6 
[20-Oct-2010 19:02:07] --- 
Questions connexes