Joomla ofrece un sencillo pero bastante completo sistema de log para volcar a archivo los resultados de nuestra depuración en tiempo de ejecución.
Una forma de utilizarlo rápidamente es ir a la clase donde se encuentra la función que queremos depurar (por ejemplo K2ModelItem en ‘administrator\components\com_k2\models\’) y añadirle la función:
function simpleLog($comment, $userId = 0)
{
// Incluimos las librerias
jimport('joomla.error.log');
$options = array(
'format' => "{DATE}\t{TIME}\t{USER_ID}\t{COMMENT}"
);
// Creamos la instancia de el fichero de log y lo usamos
$log = &JLog::getInstance(AJAX_ERROR_LOG, $options);
$log->addEntry(array('comment' => $comment, 'user_id' => $userId));
}
Con esta función, ya podemos depurar cualquier cosa mostrándolo en un archivo de log (En el ejemplo: AJAX_ERROR_LOG).
Enlazando con el título del post, os pongo un ejemplo para la obtención de tiempos dentro del método ‘save’ de esta clase:
var $t1 = time();
....
var $t2 = time();
K2ModelItem::simpleLog("Tiempo en realizar XXXX: " . round(abs($t2 - $t1) / 1,2). " segundos");
Recuerda comprobar que hayan permisos de escritura sobre la carpeta de log que tienes configurada en la ‘configuracion global’ de joomla.
Más info: http://weblog.paulbernal.com/cms/joomla/generando-logs-hacia-archivos-en-joomla-1-5-con-jlog/