Soyez le premier à donner votre avis sur cette source.
Vue 4 558 fois - Téléchargée 227 fois
<?php if(!function_exists("file_put_contents")){ function file_put_contents($filename,$content,$flags=0,$context=NULL){ if($flags==0) $flags = FILE_APPEND; $fileHandle = @fopen($filename,$flags); if ($fileHandle === false) { return 0; } else { if (is_array($content)) $content = implode($content); $bytes_written = fwrite($fileHandle, $content); fclose($fileHandle); return $bytes_written; }//else }//function } function LogFunctionExecution($function_name,$message,$start){ $filename = "logs/".$function_name.".log"; $execution_time = LogExecutionTime($start,microtime(TRUE)); $message = $function_name."\t".$message."\t".$execution_time."\n"; file_put_contents($filename,$message,FILE_APPEND); //echo "Logging : ".$message." ".$execution_time." seconds<br />"; } function LogTimeStart(){ return microtime(TRUE); /* $t_timeparts = explode(" ",microtime()); $t_starttime = $t_timeparts[1].substr($t_timeparts[0],1); return $t_starttime;
21 avril 2010 à 17:20
Je m'explique, prenez une fonction qui retourne TRUE ou FALSE suivant une requête SQL. Avec ces fonctions de log, vous êtes capable de mesurer le temps que prendra la fonction d'arriver jusqu'au TRUE et celui d'arriver jusqu'à FALSE...
Merci encore pour vos commentaires qui m'ont permis de corriger.
20 avril 2010 à 19:33
4 fonctions non optimisées ne méritent pas un niveau initié.
Pourquoi ne pas avoir fait de classe, les objets sont plus facilement manipulable..?
19 avril 2010 à 22:57
Pour ma part, la fonction se serais résumé à ça :
function LogFunctionExecution($Function, $arrParams, $msg){
$time = microtime ( true );
$Return = call_user_func_array ( $Function, $arrParams );
$time = microtime( true ) - $time;
file_put_contents ( 'logs/'.$Function.'.log', $msg."\t".$time."\n", FILE_APPEND );
return $Return;
}
Et on pourrais l'utiliser de cette façon :$SelectedUsers LogFunctionExecution( 'SelectionerClients', array('ID'> 5), 'Test Fonction');
Le petit défaut de mon code, compatible uniquement PHP > 5 ...
Ha oui, j'ai pas compris pourquoi tu as mit le nom de la fonction appelé dans le log, alors que le fichier à déjà le nom de la fonction ?! ...
Bonne prog !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.