2012-03-19 17 views
5

¿Es posible enviar el mismo error a un registro de error de php global en/var/log/php_errors así como enviar el mismo error a un registro de error local en/var/www/mysite/php_errors?¿Puedes registrar errores php en varios archivos?

En nuestro servidor de transferencia, alineo el archivo de registro, y muchas cosas de WordPress, así como algunas grandes y feas print_r vendrán de otros desarrolladores. Me gustaría tener un archivo de error global para ver si hay algo que corte el servidor de vez en cuando, así como separar mis errores locales para poder seguirlos mejor si solo estoy interesado en un sitio en este momento. .

+0

Esto apesta, 'error_log = log1; log2' tampoco funciona. – Pacerier

Respuesta

1

No es que yo sepa. Sin embargo, puede usar la configuración ini error_prepend_string y anteponer todos los registros de errores con algo. Y luego, cuando los archivos de registro que la cola puede grep en cualquier cosa que se y le mostrará sólo los mensajes de ese sitio (siempre y cuando se elige algo bastante único.)

http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-prepend-string

+0

¿Podemos configurar esto en un archivo .htaccess? Esta es probablemente la solución más simple. Necesito repasar mi grep-pipe-fu. – yellottyellott

+0

'error_prepend_string' funciona para la salida de visualización de error pero no para el registro. – majick

1

Si utiliza una biblioteca como log4php, entonces puede configurar una amplia gama de opciones de registro, incluida la escritura en varios archivos, el envío de correos electrónicos, etc. según el tipo de registro.

3

Use set_error_handler y realice una función de error personalizada con tanta anotación como desee.

+0

"Los siguientes tipos de error no pueden manejarse con una función definida por el usuario: E_ERROR, ..." Buena idea, pero causo demasiados errores fatales. – yellottyellott

+0

Para aquellos que puedes usar 'register_shutdown_function' (http://php.net/manual/en/function.register-shutdown-function.php), también tendría sentido usar' set_custom_handler' (http://php.net /manual/en/function.set-exception-handler.php) también para excepciones no detectadas – Ing

+0

Hay una clase disponible aquí que hace lo que sugiere @Ing: https://stackoverflow.com/a/30637618/5240159 – majick

Cuestiones relacionadas