logger log error_log error crear check activar php

crear - nueva linea en error_log en php



php logger (5)

Cómo insertar una nueva línea mientras se utiliza error_log() en php

Intenté usar <br> y /n pero no funcionaron.


Al realizar la depuración, si desea que su línea de registro de errores se destaque mientras observa el registro ''tail -f'', utilizo una pequeña función como esta para que la línea se destaque y sea fácil de leer.

Simplemente agregue un espacio en blanco y un término común como ''CUSTOM_LOG'' para fines de grepping posteriores.

highlight_error_log(''Msg here''); function highlight_error_log($str){ error_log(''CUSTOM_LOG: '' . $str . '' ''); }


Como se mencionó anteriormente, puede usar PHP_EOL o comillas dobles para generar una nueva línea en su archivo de registro.

De todos modos, cuando se utiliza la consola de Linux para depurar la aplicación, el comando de tail mostrará la nueva línea como ////n .

Una solución simple es usar sed para reemplazar ////n con //n :

tail -f file | sed ''s///n//n/g''

Vea esta respuesta:
https://serverfault.com/a/126409


Ocasionalmente me encuentro con este problema, pero ciertos intérpretes de PHP no siempre juegan limpio con /n por su cuenta. Mi solución fea requiere que se agregue el código ASCII sin procesar para la nueva línea, /10 , parece que funciona. Así que prueba /n/10 :

error_log("/n/10/n/10".$this->db->last_query()."/n/10/n/10");

Es un código de aspecto miserable, por lo que es posible que desee incluir esto en su propia función ... pero hace que el registro de errores se vea mucho mejor si quiere que algo se destaque.

Tampoco tengo idea de por qué esto funciona mejor ... no me importa lo suficiente como para averiguarlo, pero si alguien sabe por qué, sería genial escucharlo.


PHP_EOL gestiona nuevas líneas en múltiples plataformas:

error_log("Error message".PHP_EOL, 3, ''error.log'');


Use comillas dobles al poner el mensaje de error:

error_log("This is a two lined message. /nThis is line two.");

Deberia trabajar.

error_log(''This is a one lined message. /nThis is the same line still.'');

no funcionará: note las comillas simples.