import * as pino from 'pino' ; export class Logger { private readonly logger : any ; constructor ( config ? ) { this . logger = pino ( { prettyPrint : config ? config . pretty : false , } ) ; } log ( msg ) ; log ( obj , msg ? ) ; log ( msgOrObj , msg = '' ) { if ( arguments . length > 2 ) { const { '0' : message , '1' : context } = arguments ; this . logger . info ( `[${ context }] ${ message }` ) ; } else { this . logger . info ( msgOrObj , msg ) ; } } error ( msg ) ; error ( obj , msg ? ) ; error ( msgOrObj , msg = '' ) { if ( arguments . length > 2 ) { const { '0' : message , '1' : context } = arguments ; this . logger . error ( `[${ context }] ${ message }` ) ; } else { this . logger . error ( msgOrObj , msg ) ; } } warn ( msg ) ; warn ( obj , msg ? ) ; warn ( msgOrObj , msg = '' ) { if ( arguments . length > 2 ) { const { '0' : message , '1' : context } = arguments ; this . logger . warn ( `[${ context }] ${ message }` ) ; } else { this . logger . warn ( msgOrObj , msg ) ; } } } export interface LoggerConfig { pretty ? : boolean ; }