import { LoggerService } from '@nestjs/common' ; description docsCategory export enum LogLevel { description Error = 0 , Warn = 1 , Info = 2 , Verbose = 3 , Debug = 4 } description docsCategory export interface MpcastLogger { error ( message , context ? , trace ? ) : void ; warn ( message , context ? ) : void ; info ( message , context ? ) : void ; verbose ( message , context ? ) : void ; debug ( message , context ? ) : void ; } const noopLogger = { error ( ) { } , warn ( ) { } , info ( ) { } , verbose ( ) { } , debug ( ) { } , } ; description example ```ts
 * import { Logger } from '@podcast/core';
 *
 * Logger.info(`Some log message`, 'My Base Plugin');
 * ```
 *
 * The actual implementation - where the logs are written to - is defined by the  MpcastLogger * instance configured in the  MpcastConfig . By default, the  DefaultLogger is used, which
 * logs to the console.
 *
 * ## Implementing a custom logger
 *
 * A custom logger can be passed to the `logger` config option by creating a class which implements the
 *  MpcastLogger interface. For example, here is how you might go about implementing a logger which
 * logs to a file:
 *
 *  example docsCategory export class Logger implements LoggerService { private static _instance : typeof Logger = Logger ; private static _logger : MpcastLogger ; static get logger ( ) : MpcastLogger { return this . _logger || noopLogger ; } private get instance ( ) : typeof Logger { const { _instance } = Logger ; return _instance ; } internal static useLogger ( logger ) { Logger . _logger = logger ; } internal error ( message , trace ? , context ? ) { this . instance . error ( message , context , trace ) ; } internal warn ( message , context ? ) { this . instance . warn ( message , context ) ; } internal log ( message , context ? ) { this . instance . info ( message , context ) ; } internal verbose ( message , context ? ) { this . instance . verbose ( message , context ) ; } internal debug ( message , context ? ) { this . instance . debug ( message , context ) ; } static error ( message , context ? , trace ? ) { Logger . logger . error ( message , context , trace ) ; } static warn ( message , context ? ) { Logger . logger . warn ( message , context ) ; } static info ( message , context ? ) { Logger . logger . info ( message , context ) ; } static verbose ( message , context ? ) { Logger . logger . verbose ( message , context ) ; } static debug ( message , context ? ) { Logger . logger . debug ( message , context ) ; } }