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).