Skip to content

Commit 523b762

Browse files
committed
feat(lab10/q5): implement logging system with multiple logger types
1 parent 6302282 commit 523b762

7 files changed

Lines changed: 62 additions & 0 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
public enum LogLevel {
2+
INFO, DEBUG, ERROR
3+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
public interface Logger {
2+
void log(String message, LogLevel level);
3+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
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+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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+
}

0 commit comments

Comments
 (0)