import { Injectable , Inject } from '@angular/core' ; interface LoggingFunction { ( ... args ) : void ; } export interface LoggerService { info : LoggingFunction ; log : LoggingFunction ; warn : LoggingFunction ; error : LoggingFunction ; } @ Injectable ( { providedIn : 'root' } ) export class BrowserLoggerService implements LoggerService { constructor ( @ Inject ( 'env' ) private env ) { } info ( ... args ) { if ( ! this . env . production ) { console . info . apply ( null , args ) ; } else { } } log ( ... args ) { if ( ! this . env . production ) { console . log . apply ( null , args ) ; } else { } } warn ( ... args ) { if ( ! this . env . production ) { console . warn . apply ( null , args ) ; } else { } } error ( ... args ) { if ( ! this . env . production ) { console . error . apply ( null , args ) ; } else { } } }