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.
40 lines
1.3 KiB
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);
|
|
}
|
|
}
|