[main] More default logger backends
This commit is contained in:
parent
7112440bb7
commit
578f5d4056
|
@ -0,0 +1,176 @@
|
|||
package io.gitlab.jfronny.commons.log;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class CompoundLogger implements Logger {
|
||||
private final String name;
|
||||
private final Logger[] loggers;
|
||||
|
||||
public CompoundLogger(String name, Logger... loggers) {
|
||||
this.name = name;
|
||||
this.loggers = loggers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(String msg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.trace(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(String format, Object arg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.trace(format, arg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(String format, Object... args) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.trace(format, args);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(String msg, Throwable t) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.trace(msg, t);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String msg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.debug(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String format, Object arg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.debug(format, arg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String format, Object... args) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.debug(format, args);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String msg, Throwable t) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.debug(msg, t);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String msg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.info(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String format, Object arg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.info(format, arg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String format, Object... args) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.info(format, args);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String msg, Throwable t) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.info(msg, t);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String msg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.warn(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String format, Object arg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.warn(format, arg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String format, Object... args) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.warn(format, args);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String msg, Throwable t) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.warn(msg, t);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String msg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.error(msg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String format, Object arg) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.error(format, arg);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String format, Object... args) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.error(format, args);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String msg, Throwable t) {
|
||||
for (Logger logger : loggers) {
|
||||
logger.error(msg, t);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String format(String format, Object arg) {
|
||||
if (loggers.length == 0) return Logger.super.format(format, arg);
|
||||
return loggers[0].format(format, arg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String format(String format, Object... args) {
|
||||
if (loggers.length == 0) return Logger.super.format(format, args);
|
||||
return loggers[0].format(format, args);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String format(String msg, Throwable t) {
|
||||
if (loggers.length == 0) return Logger.super.format(msg, t);
|
||||
return loggers[0].format(msg, t);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package io.gitlab.jfronny.commons.log;
|
||||
|
||||
import io.gitlab.jfronny.commons.cache.FixedSizeSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class MemoryLogger implements Logger, Iterable<String> {
|
||||
private final String name;
|
||||
private final Set<String> lines;
|
||||
|
||||
public MemoryLogger(String name) {
|
||||
this.name = name;
|
||||
this.lines = new LinkedHashSet<>();
|
||||
}
|
||||
|
||||
public MemoryLogger(String name, int size) {
|
||||
this.name = name;
|
||||
this.lines = new FixedSizeSet<>(size);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void trace(String msg) {
|
||||
lines.add("[T] " + msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void debug(String msg) {
|
||||
lines.add("[D] " + msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void info(String msg) {
|
||||
lines.add("[I] " + msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warn(String msg) {
|
||||
lines.add("[W] " + msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error(String msg) {
|
||||
lines.add("[E] " + msg);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Iterator<String> iterator() {
|
||||
return lines.iterator();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forEach(Consumer<? super String> action) {
|
||||
lines.forEach(action);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Spliterator<String> spliterator() {
|
||||
return lines.spliterator();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue