En nuestra aplicación Angular (hecha con Angular CLI) usamos varias declaraciones console . ¿Existe una forma global de detectar el entorno y luego mostrar console.log en nuestros componentes y servicios solo en desarrollo?
Lo que quiero decir con forma global: sé que podemos usar algo como:
if (!environment.production) { console.log(this.reviewTasksList); } Pero al usar este código cada vez que tenemos que hacer console.log (junto con la importación necesaria para obtener la variable de environment ), nuestro código se volverá algo detallado.
Quiero saber si hay una manera de tal vez:
¿O la mejor solución aquí es crear un servicio de registrador y verificar todo el entorno dentro de él?
No quiero que el tamaño de mi paquete se vea afectado por las declaraciones de depuración y el servicio.
Esto sobrescribe todos los registros de la consola con la función en blanco.
if (environment.production) { enableProdMode(); window.console.log = function () { }; // disable any console.log debugging statements in production mode // window.console.error = function () { }; }Alternativamente, puede usar un servicio común para lograr esto
this.loggerService.log(this.reviewTasksList);donde como en su servicio se puede utilizar
log(text: string){ if (!environment.production) { console.log(text) } }Puede usarisDevMode() o su environment.production para verificar si el código se ejecuta en modo de desarrollo o producción.
Creo que un servicio de registro sería una buena idea y luego registrar un servicio de registro diferente en los proveedores según el modo.
Ver también https://github.com/angular/angular/pull/14308