You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
argos/dmp-backend/src/main/java/eu/eudat/services/helpers/LoggerServiceImpl.java

40 lines
1.3 KiB
Java

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<WarningLevel, Applier<Logger, String>> 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);
}
}