java-commons/src/main/java/io/gitlab/jfronny/commons/log/LogStrategy.java

93 lines
2.5 KiB
Java

package io.gitlab.jfronny.commons.log;
import io.gitlab.jfronny.commons.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Objects;
import java.util.function.Function;
public interface LogStrategy {
@Nullable String getName();
default void trace(String msg) {
debug(msg);
}
default void trace(String format, Object arg) {
trace(format(format, arg));
}
default void trace(String format, Object... args) {
trace(format(format, args));
}
default void trace(String msg, Throwable t) {
trace(format(msg, t));
}
default void debug(String msg) {
info(msg);
}
default void debug(String format, Object arg) {
debug(format(format, arg));
}
default void debug(String format, Object... args) {
debug(format(format, args));
}
default void debug(String msg, Throwable t) {
debug(format(msg, t));
}
void info(String msg);
default void info(String format, Object arg) {
info(format(format, arg));
}
default void info(String format, Object... args) {
info(format(format, args));
}
default void info(String msg, Throwable t) {
info(format(msg, t));
}
default void warn(String msg) {
info(msg);
}
default void warn(String format, Object arg) {
warn(format(format, arg));
}
default void warn(String format, Object... args) {
warn(format(format, args));
}
default void warn(String msg, Throwable t) {
warn(format(msg, t));
}
default void error(String msg) {
warn(msg);
}
default void error(String format, Object arg) {
error(format(format, arg));
}
default void error(String format, Object... args) {
error(format(format, args));
}
default void error(String msg, Throwable t) {
error(format(msg, t));
}
default String format(String format, Object arg) {
return format.replaceFirst("\\{}", StringFormatter.toString(arg));
}
default String format(String format, Object... args) {
if (args == null || format == null) return format;
for (Object arg : args) {
format = format.replaceFirst("\\{}", StringFormatter.toString(arg));
}
return format;
}
default String format(String msg, Throwable t) {
if (t == null) return msg;
return msg + System.lineSeparator() + t;
}
}