Dart:
Registro de Actividades

Cómo hacerlo:

Dart incluye un mecanismo de registro simple a través de la biblioteca dart:developer. Para necesidades de registro más sofisticadas, los programadores suelen recurrir a bibliotecas de terceros como logger y log4dart.

Usando dart:developer

Esto es adecuado para registro básico, especialmente durante el desarrollo:

import 'dart:developer';

void main() {
  log('Este es un mensaje de registro de depuración.');
}

Salida:

Este es un mensaje de registro de depuración.

Usando el paquete logger

Para una solución más completa, el paquete logger ofrece varios niveles de registro (por ejemplo, información, advertencia, error) y se puede formatear de una manera más legible.

Primero, añade la dependencia logger en tu archivo pubspec.yaml:

dependencies:
  logger: ^1.0.0

Luego, úsalo de la siguiente manera:

import 'package:logger/logger.dart';

var logger = Logger();

void main() {
  logger.d("Este es un mensaje de depuración");
  logger.w("Este es un mensaje de advertencia");
  logger.e("Este es un mensaje de error");
}

La salida de ejemplo podría verse así, con cada tipo de mensaje formateado de manera diferente para una fácil identificación:

💬 Este es un mensaje de depuración
⚠️ Este es un mensaje de advertencia
❗️ Este es un mensaje de error

Usando el paquete log4dart

Para aplicaciones que requieran registro basado en configuración (similar a Log4j), log4dart ofrece un enfoque familiar. Es especialmente útil para aplicaciones a gran escala.

Asegúrate de incluir log4dart en tu pubspec.yaml:

dependencies:
  log4dart: ^2.0.0

Un ejemplo de uso simple:

import 'package:log4dart/log4dart.dart';

void main() {
  final logger = LoggerFactory.getLogger("MyApp");
  logger.debug("Depurando MyApp");
  logger.info("Mensaje informativo");
}

Salida:

DEBUG: Depurando MyApp
INFO: Mensaje informativo

Cada uno de estos métodos proporciona un nivel diferente de flexibilidad y complejidad, desde mensajes de depuración simples hasta registro comprensivo y configurable, adaptado a las necesidades de aplicaciones complejas.