File tree Expand file tree Collapse file tree
Design-Patterns-in-OOP/10-lab/q5 Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ public class App {
2+ public static void main (String [] args ) {
3+ UnifiedLogger logger = new UnifiedLogger ();
4+
5+ logger .log ("This is an information." , LogLevel .INFO );
6+ System .out .println ();
7+
8+ logger .log ("This is a debug information." , LogLevel .DEBUG );
9+ System .out .println ();
10+
11+ logger .log ("This is an error information." , LogLevel .ERROR );
12+ }
13+ }
Original file line number Diff line number Diff line change 1+ public class ErrorConsoleLogger implements Logger {
2+ @ Override
3+ public void log (String message , LogLevel level ) {
4+ System .out .println ("Error Console::Logger: " + message );
5+ }
6+ }
Original file line number Diff line number Diff line change 1+ public class FileLogger implements Logger {
2+ @ Override
3+ public void log (String message , LogLevel level ) {
4+ System .out .println ("File::Logger: " + message );
5+ }
6+ }
Original file line number Diff line number Diff line change 1+ public enum LogLevel {
2+ INFO , DEBUG , ERROR
3+ }
Original file line number Diff line number Diff line change 1+ public interface Logger {
2+ void log (String message , LogLevel level );
3+ }
Original file line number Diff line number Diff line change 1+ public class StandardConsoleLogger implements Logger {
2+ @ Override
3+ public void log (String message , LogLevel level ) {
4+ System .out .println ("Standard Console::Logger: " + message );
5+ }
6+ }
Original file line number Diff line number Diff line change 1+ public class UnifiedLogger {
2+ private Logger standardLogger = new StandardConsoleLogger ();
3+ private Logger fileLogger = new FileLogger ();
4+ private Logger errorLogger = new ErrorConsoleLogger ();
5+
6+ public void log (String message , LogLevel level ) {
7+ switch (level ) {
8+ case INFO :
9+ // INFO: Only show on standard console
10+ standardLogger .log (message , level );
11+ break ;
12+ case DEBUG :
13+ // DEBUG: Show on file and standard console
14+ fileLogger .log (message , level );
15+ standardLogger .log (message , level );
16+ break ;
17+ case ERROR :
18+ // ERROR: Show on error console, file and standard console
19+ errorLogger .log (message , level );
20+ fileLogger .log (message , level );
21+ standardLogger .log (message , level );
22+ break ;
23+ }
24+ }
25+ }
You can’t perform that action at this time.
0 commit comments