EN

Mario Rocafull / Albin

Programador freelance en Valencia

9 agosto 2023 · Código

Notificación de errores

Cómo recibo notificaciones cuando hay errores graves en un proyecto.

Muchos lenguajes escriben un log de errores con fallos de sintaxis (se te olvidó un punto y coma) o de ejecución (ej. llamada a una función que no existe).

La notificación puedes recibirla por Email o por Telegram, por ejemplo. En mi caso, yo no suelo revisar el e-mail cuando no estoy en casa y sin embargo como mi Telegram tiene muy poca actividad sí suelo mirarlo cuando suena, al contrario que el Whatsapp que tiene las notificaciones desactivadas (me gusta respirar tranquilo). Pero también puedes resolverlo asignando a ese contacto (al bot) un sonido diferente al resto para saber que el mensaje es una alerta de un proyecto.

Básicamente creamos una tarea cron que compruebe cada cierto tiempo si ha crecido el fichero log respecto a la última comprobación y en ese caso envía un aviso (EngineFwk son mis librerías cuando hago programación a medida).

$tgram   = \EngineFwk\Telegram::instance();

$config = json_decode(file_get_contents('cron-logs-checker.json'));

if(file_exists('error.log')) {
	$mtime = filemtime('error.log');
	if($mtime > $config->last_exec) {
		$tgram->send_message('AcrataDom', 'myImportantProject : New PHP errors');
	}
}

$config->last_exec = time();

file_put_contents('cron-logs-checker.json', json_encode($config, JSON_PRETTY_PRINT));

Resumen

No tiene sentido tener un log de errores que nunca revisas, es mejor tener un cron que te avise cuando crece el log.

Lógicamente, esto solo es válido para los programadores que hacemos código limpio y sería una locura en proyectos donde se integran librerías muy verbose.