Files
oops/src/main/java/oving6/logger/DistributingLogger.java
2026-03-03 06:31:50 +01:00

49 lines
1.1 KiB
Java

package oving6.logger;
public class DistributingLogger implements ILogger {
ILogger errorLogger;
ILogger warningLogger;
ILogger infoLogger;
DistributingLogger(ILogger errorLogger, ILogger warningLogger, ILogger infoLogger) {
this.errorLogger = errorLogger;
this.warningLogger = warningLogger;
this.infoLogger = infoLogger;
}
void setLogger(String severity, ILogger logger) {
switch (severity) {
case "error":
errorLogger = logger;
break;
case "warning":
warningLogger = logger;
break;
case "info":
infoLogger = logger;
break;
default:
throw new IllegalArgumentException("Invalid severity level for logger");
}
}
@Override
public void log(String severity, String message, Exception exception) {
switch (severity) {
case "error":
errorLogger.log(severity, message, exception);
break;
case "warning":
warningLogger.log(severity, message, exception);
break;
case "info":
infoLogger.log(severity, message, exception);
break;
default:
throw new IllegalArgumentException("Invalid severity level for logger");
}
}
}