uso tokens que para operator mensajes errores error control arroba php apache debugging

que - tokens php



Registro de errores de PHP y caracteres de nueva lĂ­nea. (3)

Chris, deberías poder cambiar la directiva error_log en tu php.ini en Debian para apuntar a un archivo. Si esto no está definido, pasará por syslog que no admite varias líneas.

Detalles:

función error_log

directiva error_log

¿Cuál es la configuración de configuración de PHP que permite o evita que se escapen las nuevas líneas en la salida de depuración?

En dos instalaciones diferentes (una computadora portátil dev que ejecuta MAMP / OSX y un servidor dev que ejecuta debian) veo resultados diferentes en los registros de errores cuando se realiza la depuración.

error_log(print_r(array(1,2,4),1));

En Debian, esto aparece en /var/log/apache2/error.log como

[Thu Jul 30 11:32:34 2009] [error] [client 118.93.246.104] Array/n(/n [0] => 1/n [1] => 2/n [2] => 4/n)/n, referer: http://dev.example.org/

En OSX, esto aparece en / Aplicaciones / MAMP / logs / php_error_log como

[30-Jul-2009 11:34:00] Array ( [0] => 1 [1] => 2 [2] => 4 )

Prefiero la forma MAMP para la depuración (además de reubicar los archivos de registro en el directorio / Aplicaciones).

¡Gracias!


El problema se produce cuando el proceso de Apache no puede escribir en el archivo error_log, por lo que el syslog escribe en el archivo en su lugar. El syslog desordena los saltos de línea.

Así que hazlo:

chmod 777 error.log

Esto debería solucionar tu problema.


Se me ocurrió una buena solución para esto y solo escribí en mi blog, podría ser útil para las personas: http://www.drcoen.com/2012/05/php-error_log-and-newlines-a-solution/ . TL; DR: escriba en un archivo que cree usted mismo en / tmp, escriba una función que escriba su información de depuración en ese archivo y enrute el registro de Apache allí también (para que no tenga que rastrear 2 archivos de error).