2011-07-16 15 views
9

Cuando desarrollo aplicaciones web, en el nivel del cliente utilizo console.log y console.error para ayudarme a ver qué está pasando. Estoy buscando una característica similar en el nivel del servidor para ayudarme a ver qué está pasando. He visto error_log que escribe errores en el archivo de registro del servidor y quería saber si hay una función similar para escribir en los registros de acceso de los servidores.console.log, console.error para PHP?

¿O estoy yendo sobre esto de la manera incorrecta, se supone que debo usar algo completamente diferente para ver lo que está pasando en el fondo para el desarrollo del servidor?

+2

¿Por qué quieres escribir en el registro de acceso en lugar del registro de errores? El registro de acceso se llena automáticamente. –

+0

Para el desarrollo del lado del cliente, muestro los valores variables que se utilizan en console.log. Quería ver si existe tal característica en php, donde puedo ver valores de variables fácilmente similares a cómo uso console.log para el desarrollo del lado del cliente. Además, error_log también se llena automáticamente. – nami

Respuesta

9

No es exactamente lo mismo, pero es posible que desee investigar el depurador de PHP, XDebug.

Tiene algunas funciones de depuración muy potentes para PHP. Por ejemplo, puede recorrer un programa PHP línea por línea y observar dónde va, y en qué se establecen las variables en cualquier punto dado del programa, etc.

Funciona mejor cuando se utiliza junto con un IDE como Netbeans o Eclipse, ya que puede usar la misma interfaz para depurar sus programas a medida que utiliza para editar su código.

También puede generar archivos de rastreo, que pueden cargarse en un programa llamado WinCacheGrind, que le permite rastrear a través del programa después de su ejecución, para ver, por ejemplo, qué funciones causaron que se ejecute lentamente.

1

Me segunda Spudley's answer sobre el uso de XDebug o el Zend depurador (configuración similar y funcionamiento a XDebug). Sin embargo, para responder directamente a su pregunta, puede usar trigger_error en combo con E_USER_WARNING o E_USER_NOTICE y el nivel de error_reporting apropiado. También podría usar syslog como ssapkota sugiere.

12

Esto funcionó para mí: http://www.paulund.co.uk/output-php-data-in-browser-console

/** 
* Send debug code to the Javascript console 
*/ 
function debug_to_console($data) { 
    if(is_array($data) || is_object($data)) { 
    echo("<script>console.log('PHP: ".json_encode($data)."');</script>"); 
    } else { 
    echo("<script>console.log('PHP: $data');</script>"); 
    } 
}