Tecnología WordPress

Borrar de forma automática el log de WordPress y renombrarlo

Por razones de depuración, suelo tener activado el fichero log de WordPress para ver errores en clientes. El problema de tener el log activado en WordPress de forma constante es doble. Por un lado es un problema de seguridad, porque todo el mundo puede leerlo desde fuera y ver rutas y datos que no debería ver; y por otro, en algunas instalaciones sobre todo porque tienen mucho tráfico o muchos warning o notices, porque se vuelve enorme.

Vamos a darle solución a estos dos problemas.

Renombrar el fichero de log

Pues en vez de poner a true la constante WP_DEBUG_LOG lo ponemos con una ruta completa a un fichero y listo:

define('WP_DEBUG_LOG', '/var/www/misitio/logs/errores.log');

La ruta debe poder escribirse por WordPress y además debe ser lo suficientemente larga para que los bots no puedan encontrarla, por ejemplo:

define('WP_DEBUG_LOG', '/var/www/misitio/wp-content/errores-71e699696153975a574271c5ba77f5dd7ba65ba8.log');

Así tú sabrás encontrarlo donde siempre pero los bots no verán el fichero porque no podrán rastrear esa ruta.

Borrar automáticamente el log de forma diaria

Así rematamos el proceso, además de hacer el log seguro e invisible para bots maliciosos, lo borramos a diario para que no se llene y se convierta en un problema.

Hay un evento en WordPress definitido por el cron, que se ejecuta cada 24 horas y que está pensado para unir procesos de borrado automático, así que nos viene genial.

add_action( 'wp_scheduled_delete', function(){
    if ( defined('WP_DEBUG_LOG') && WP_DEBUG_LOG ) {
        $log_path = WP_CONTENT_DIR . '/debug.log';
    } elseif ( is_string(WP_DEBUG_LOG) ) {
        $log_path = WP_DEBUG_LOG;
    }

    if( file_exists( $log_path ) ){
        unlink( $log_path );
    }
});

Nos unimos al evento en cuestión de nombre wp_scheduled_delete y aplicamos la lógica:

  • Si existe la constante WP_DEBUG_LOG y es true, está en la ruta estándar que es debug.log en el fichero content
  • Si existe y es una cadena, entonces estamos usando una ruta personalizada

Una vez tenemos la ruta oportuna, si el fichero existe, lo borramos.

Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Francisco Javier Carazo Gil

Compartir
Publicado por
Francisco Javier Carazo Gil
Etiquetas: borradolog

Entradas recientes

RedSys para Contact Form 7 ahora muestra el justificante y el motivo del rechazo en la página de gracias

Ya está disponible la versión 2.2 de Contact Form 7 – Integración con RedSys, y…

hace % días

¿Qué aporta la integración de Bizum y métodos similares en el proceso de pago?

El comercio electrónico español, que se encuentra en pleno crecimiento y transformación, vive actualmente un…

hace % días

Pagos recurrentes en Contact Form 7: suscripciones con RedSys, paso a paso

Hasta ahora, la integración de Contact Form 7 con RedSys solo sabía cobrar pagos únicos:…

hace % días

Cuotas personalizadas con RedSys

El pago fraccionado de RedSys para WooCommerce lleva un tiempo permitiendo dividir el precio de…

hace % días

Contact Form 7 – Integración con RedSys ya habla catalán, gallego y euskera

Ya está disponible la versión 1.24 de Contact Form 7 - Integración con RedSys, y…

hace % días

Calendario de pagos a medida en WooCommerce Subscriptions: cobra en las fechas que tú decidas

Hasta ahora, cobrar una suscripción en WooCommerce significaba aceptar una regla muy simple: eliges un…

hace % días