Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface ILogger {
- error(message: string): void;
- info(message: string): void;
- warning(message: string): void;
- }
- /**
- * DB Logger
- */
- class DBLogger implements ILogger {
- public error(message: string): void {
- // do something
- }
- public info(message: string): void {
- // do something
- }
- public warning(message: string): void {
- // do something
- }
- }
- /**
- * File Logger
- */
- class FileLogger implements ILogger {
- public error(message: string): void {
- // do something
- }
- public info(message: string): void {
- // do something
- }
- public warning(message: string): void {
- // do something
- }
- }
- class Logger {
- private loggerInstance: ILogger;
- /**
- * Constructor Logger.
- *
- * @param inst
- */
- public constructor(inst: ILogger) {
- this.loggerInstance = inst;
- }
- /**
- * Set Error log.
- * @param message
- */
- public error(message: string) {
- this.loggerInstance.error(message);
- }
- /**
- * Set Info log.
- * @param message
- */
- public info(message: string) {
- this.loggerInstance.info(message);
- }
- /**
- * Set Warning log.
- * @param message
- */
- public warning(message: string) {
- this.loggerInstance.warning(message);
- }
- /**
- * Set new logger instance.
- *
- * @param inst
- */
- public setLogger(inst: ILogger) {
- this.loggerInstance = inst;
- }
- }
- const dbLogger = new DBLogger();
- const logger = new Logger(dbLogger);
- logger.error('Error line');
- logger.setLogger(new FileLogger());
- logger.warning('Warning line');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement