Necesitamos ampliar algunas funciones del logger, así como moverlo fuera de la carpeta Core/Base. La nueva clase se llamará Core/Logger y será una copia del MiniLog, pero con las siguientes funciones adicionales:
En ocasiones necesitamos obtener los últimos mensajes que se han añadido al log, por ejemplo cuando al guardar una factura el save() devuelve false y no sabemos por qué. Con Logger::readLast() podremos obtener el último mensaje añadido al log.
Logger::readLast(); // devuelve un array un único elemento. El último mensaje añadido al log
Logger::readLast(5); // devuelve un array con los 5 últimos mensaje añadidos al log
Logger::readLast(2, 'database'); // devuelve un array con los 2 últimos mensajes añadido al log en el canal database
Logger::readLast(2, 'database', 'error'); // devuelve un array con los 2 últimos errores añadido al log en el canal database
Cuando queremos añádir un mensaje a varios canales, podemos hacer la misma llamada al logger para cada canal. O bien podemos usar la función de copy():
Tools::log('channel1')->error('error-1');
Tools::log('channel2')->error('error-1');
Tools::log('channel1')->error('error-1')->copy('channel-2');
Esto es una sugerencia a debatir. Está abierta a comentarios, votación y debate en la reunión semanal. Si se aprueba pasará a estado pendiente.