package eu.eudat.services.helpers; import eu.eudat.types.WarningLevel; import eu.eudat.utilities.interfaces.Applier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; /** * Created by ikalyvas on 3/1/2018. */ @Service("loggerService") public class LoggerServiceImpl implements LoggerService { private static final Logger logger = LoggerFactory.getLogger(LoggerServiceImpl.class); private WarningLevel level; private Map> options = new HashMap<>(); public void setLevel(WarningLevel level) { this.level = level; } public LoggerServiceImpl() { this.options.put(WarningLevel.DEBUG, (logger, message) -> logger.debug(message)); this.options.put(WarningLevel.INFO, (logger, message) -> logger.info(message)); this.options.put(WarningLevel.WARN, (logger, message) -> logger.warn(message)); this.options.put(WarningLevel.ERROR, (logger, message) -> logger.error(message)); } public void log(String message) { this.options.get(this.level).apply(logger, message); } public void log(String message, WarningLevel level) { this.options.get(level).apply(logger, message); } }