$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