45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package io.gitlab.jfronny.commons.logger;
|
|
|
|
|
|
import java.util.ResourceBundle;
|
|
|
|
/**
|
|
* Logger implementation that logs to multiple loggers at once.
|
|
*/
|
|
public class CompoundLogger implements SystemLoggerPlus {
|
|
private final String name;
|
|
private final System.Logger[] loggers;
|
|
|
|
public CompoundLogger(String name, System.Logger[] loggers) {
|
|
this.name = name;
|
|
this.loggers = loggers;
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public boolean isLoggable(Level level) {
|
|
for (System.Logger logger : loggers) {
|
|
if (logger.isLoggable(level)) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void log(Level level, ResourceBundle resourceBundle, String s, Throwable throwable) {
|
|
for (System.Logger logger : loggers) {
|
|
if (logger.isLoggable(level)) logger.log(level, resourceBundle, s, throwable);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void log(Level level, ResourceBundle resourceBundle, String s, Object... objects) {
|
|
for (System.Logger logger : loggers) {
|
|
if (logger.isLoggable(level)) logger.log(level, resourceBundle, s, objects);
|
|
}
|
|
}
|
|
}
|