All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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