Skip to content

Instantly share code, notes, and snippets.

@venator85
Created December 18, 2024 13:44
Show Gist options
  • Save venator85/cbf61dcc020415586ff0c645463d88a8 to your computer and use it in GitHub Desktop.
Save venator85/cbf61dcc020415586ff0c645463d88a8 to your computer and use it in GitHub Desktop.
StdOutLogger
import org.slf4j.Logger;
import org.slf4j.Marker;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StdOutLogger implements Logger {
private final String name;
private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile("\\{}");
public StdOutLogger(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
private void log(String level, String message, Throwable t) {
String log = String.format("[%s] [%s] %s", level, name, message);
System.out.println(log);
if (t != null) {
t.printStackTrace(System.out);
}
}
private String formatMessage(String format, Object... arguments) {
if (arguments == null || arguments.length == 0) {
return format;
}
Matcher matcher = PLACEHOLDER_PATTERN.matcher(format);
StringBuffer sb = new StringBuffer();
int i = 0;
while (matcher.find() && i < arguments.length) {
matcher.appendReplacement(sb, arguments[i] == null ? "null" : arguments[i].toString());
i++;
}
matcher.appendTail(sb);
return sb.toString();
}
@Override
public void debug(String msg) {
log("DEBUG", msg, null);
}
@Override
public void debug(String format, Object arg) {
log("DEBUG", formatMessage(format, arg), null);
}
@Override
public void debug(String format, Object arg1, Object arg2) {
log("DEBUG", formatMessage(format, arg1, arg2), null);
}
@Override
public void debug(String format, Object... arguments) {
log("DEBUG", formatMessage(format, arguments), null);
}
@Override
public void debug(String msg, Throwable t) {
log("DEBUG", msg, t);
}
@Override
public void debug(Marker marker, String msg) {
log("DEBUG", msg, null);
}
@Override
public void debug(Marker marker, String format, Object arg) {
log("DEBUG", formatMessage(format, arg), null);
}
@Override
public void debug(Marker marker, String format, Object arg1, Object arg2) {
log("DEBUG", formatMessage(format, arg1, arg2), null);
}
@Override
public void debug(Marker marker, String format, Object... arguments) {
log("DEBUG", formatMessage(format, arguments), null);
}
@Override
public void debug(Marker marker, String msg, Throwable t) {
log("DEBUG", msg, t);
}
@Override
public void error(String msg) {
log("ERROR", msg, null);
}
@Override
public void error(String format, Object arg) {
log("ERROR", formatMessage(format, arg), null);
}
@Override
public void error(String format, Object arg1, Object arg2) {
log("ERROR", formatMessage(format, arg1, arg2), null);
}
@Override
public void error(String format, Object... arguments) {
log("ERROR", formatMessage(format, arguments), null);
}
@Override
public void error(String msg, Throwable t) {
log("ERROR", msg, t);
}
@Override
public void error(Marker marker, String msg) {
log("ERROR", msg, null);
}
@Override
public void error(Marker marker, String format, Object arg) {
log("ERROR", formatMessage(format, arg), null);
}
@Override
public void error(Marker marker, String format, Object arg1, Object arg2) {
log("ERROR", formatMessage(format, arg1, arg2), null);
}
@Override
public void error(Marker marker, String format, Object... arguments) {
log("ERROR", formatMessage(format, arguments), null);
}
@Override
public void error(Marker marker, String msg, Throwable t) {
log("ERROR", msg, t);
}
@Override
public void info(String msg) {
log("INFO", msg, null);
}
@Override
public void info(String format, Object arg) {
log("INFO", formatMessage(format, arg), null);
}
@Override
public void info(String format, Object arg1, Object arg2) {
log("INFO", formatMessage(format, arg1, arg2), null);
}
@Override
public void info(String format, Object... arguments) {
log("INFO", formatMessage(format, arguments), null);
}
@Override
public void info(String msg, Throwable t) {
log("INFO", msg, t);
}
@Override
public void info(Marker marker, String msg) {
log("INFO", msg, null);
}
@Override
public void info(Marker marker, String format, Object arg) {
log("INFO", formatMessage(format, arg), null);
}
@Override
public void info(Marker marker, String format, Object arg1, Object arg2) {
log("INFO", formatMessage(format, arg1, arg2), null);
}
@Override
public void info(Marker marker, String format, Object... arguments) {
log("INFO", formatMessage(format, arguments), null);
}
@Override
public void info(Marker marker, String msg, Throwable t) {
log("INFO", msg, t);
}
@Override
public void trace(String msg) {
log("TRACE", msg, null);
}
@Override
public void trace(String format, Object arg) {
log("TRACE", formatMessage(format, arg), null);
}
@Override
public void trace(String format, Object arg1, Object arg2) {
log("TRACE", formatMessage(format, arg1, arg2), null);
}
@Override
public void trace(String format, Object... arguments) {
log("TRACE", formatMessage(format, arguments), null);
}
@Override
public void trace(String msg, Throwable t) {
log("TRACE", msg, t);
}
@Override
public void trace(Marker marker, String msg) {
log("TRACE", msg, null);
}
@Override
public void trace(Marker marker, String format, Object arg) {
log("TRACE", formatMessage(format, arg), null);
}
@Override
public void trace(Marker marker, String format, Object arg1, Object arg2) {
log("TRACE", formatMessage(format, arg1, arg2), null);
}
@Override
public void trace(Marker marker, String format, Object... arguments) {
log("TRACE", formatMessage(format, arguments), null);
}
@Override
public void trace(Marker marker, String msg, Throwable t) {
log("TRACE", msg, t);
}
@Override
public void warn(String msg) {
log("WARN", msg, null);
}
@Override
public void warn(String format, Object arg) {
log("WARN", formatMessage(format, arg), null);
}
@Override
public void warn(String format, Object arg1, Object arg2) {
log("WARN", formatMessage(format, arg1, arg2), null);
}
@Override
public void warn(String format, Object... arguments) {
log("WARN", formatMessage(format, arguments), null);
}
@Override
public void warn(String msg, Throwable t) {
log("WARN", msg, t);
}
@Override
public void warn(Marker marker, String msg) {
log("WARN", msg, null);
}
@Override
public void warn(Marker marker, String format, Object arg) {
log("WARN", formatMessage(format, arg), null);
}
@Override
public void warn(Marker marker, String format, Object arg1, Object arg2) {
log("WARN", formatMessage(format, arg1, arg2), null);
}
@Override
public void warn(Marker marker, String format, Object... arguments) {
log("WARN", formatMessage(format, arguments), null);
}
@Override
public void warn(Marker marker, String msg, Throwable t) {
log("WARN", msg, t);
}
@Override
public boolean isTraceEnabled() {
return true;
}
@Override
public boolean isTraceEnabled(Marker marker) {
return true;
}
@Override
public boolean isDebugEnabled() {
return true;
}
@Override
public boolean isDebugEnabled(Marker marker) {
return true;
}
@Override
public boolean isInfoEnabled() {
return true;
}
@Override
public boolean isInfoEnabled(Marker marker) {
return true;
}
@Override
public boolean isWarnEnabled() {
return true;
}
@Override
public boolean isWarnEnabled(Marker marker) {
return true;
}
@Override
public boolean isErrorEnabled() {
return true;
}
@Override
public boolean isErrorEnabled(Marker marker) {
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment