cl.logging.Console Maven / Gradle / Ivy
package cl.logging;
import java.time.LocalDateTime;
import java.util.function.Supplier;
/**
* A {@link Log} interface implementation which prints messages to {@code System.out}
*/
final class Console implements Log {
private final String name;
public Console(Class> klass) {
name = klass.getName();
}
public Console(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
@Override
public void trace(Supplier message) {
log("TRACE", message.get());
}
@Override
public void debug(Supplier message) {
log("DEBUG", message.get());
}
@Override
public void info(Supplier message) {
log("INFO", message.get());
}
@Override
public void warn(Supplier message) {
log("WARN", message.get());
}
@Override
public void error(Supplier message) {
log("ERROR", message.get());
}
private void log(String level, String message) {
System.out.println(level + "\t" + LocalDateTime.now() + " " + name + ": " + message);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy