top of page

Chain Of Responsibility design patter (Logger LLD System Design)

Updated: Jun 12, 2024

LoggerProcessor

package designPatterns.ChainOfResposibilityPattern;

public class LogProcessor {
	private final LogProcessor nextLogProcessor;

	public LogProcessor(LogProcessor nextLogProcessor) {
		this.nextLogProcessor = nextLogProcessor;
	}
	public void log(String name, String message) {
		if (nextLogProcessor != null) {
			nextLogProcessor.log(name, message);
		}
	}
}

Info Log class

package designPatterns.ChainOfResposibilityPattern;

public class InfoLog extends LogProcessor {
	public InfoLog(LogProcessor nextLogProcessor) {
		super(nextLogProcessor);
	}
	public void log(String name, String message) {
		if (name.equalsIgnoreCase("INFO")) {
			System.out.println("Info: " + message);
		} else {
			super.log(name, message);
		}
	}
}

Error log class

package designPatterns.ChainOfResposibilityPattern;

public class ErrorLog extends LogProcessor {

	public ErrorLog(LogProcessor nextLogProcessor) {
		super(nextLogProcessor);
	}
	public void log(String name, String message) {
		if (name.equalsIgnoreCase("ERROR")) {
			System.out.println("Error: " + message);
		}else{
			super.log(name, message);
		}
	}
}

Debug Log Class

package designPatterns.ChainOfResposibilityPattern;

public class DebugLog extends LogProcessor {
	public DebugLog(LogProcessor nextLogProcessor) {
		super(nextLogProcessor);
	}
	public void log(String name, String message) {
		if (name.equalsIgnoreCase("DEBUG")) {
			System.out.println("DEBUG: " + message);
		} else {
			super.log(name, message);
		}
	}
}

package designPatterns.ChainOfResposibilityPattern;

public class ChainOfResponsibilityMain {
	public static void main(String[] args) {
		LogProcessor logger = new InfoLog(new DebugLog(new ErrorLog(null)));
		logger.log("INFO", "this is info message");
		logger.log("ERROR", "this is error message");
		logger.log("DEBUG", "this is debug message");
	}
}

output:

Info: this is info message
Error: this is error message
DEBUG: this is debug message

Recent Posts

See All

Comments


Call 

7869617359

Email 

Follow

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram
Never Miss a Post. Subscribe Now!

Thanks for submitting!

bottom of page