Carlos Cifuentes
Referencia AngularJS → Angular

$log en Angular moderno

Angular no tiene un servicio $log. Llama a console directamente, o escribe un servicio de logging pequeño cuando necesites controlar niveles o reenviar errores.

Antes · AngularJS
app.config(function ($logProvider) {
  $logProvider.debugEnabled(false);
});

app.service('OrderService', function ($log) {
  this.save = function (order) {
    $log.debug('Saving order', order.id);
    $log.error('Save failed', order.id);
  };
});
Después · Angular
@Injectable({ providedIn: 'root' })
export class LoggerService {
  private debugEnabled = isDevMode();

  debug(...args: unknown[]) {
    if (this.debugEnabled) { console.debug(...args); }
  }

  error(...args: unknown[]) {
    console.error(...args);
    // forward to your monitoring tool here
  }
}

Qué cambia

  • $log.debug, info, warn y error equivalen a los métodos de console del mismo nombre.
  • $logProvider.debugEnabled(false) pasa a ser una bandera en tu propio servicio, por ejemplo basada en isDevMode().
  • Los decoradores de $log que enviaban logs a un servidor pasan a ser un método del servicio de logging.

Consejo de migración. Vale la pena tener un servicio de logging delgado: un solo lugar para silenciar el debug en producción y para conectar una herramienta de monitoreo. Mantenlo pequeño y evita construir un framework de logging.

Relacionado

¿Planeas una migración o una plataforma de microfrontends?

En una llamada de 20 minutos me cuentas tu situación y te digo cómo la abordaría. Si todavía no vale la pena, también te lo digo.

Escríbeme por LinkedIn