49 lines
1.1 KiB
Java
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");
|
|
}
|
|
|
|
}
|
|
}
|