package com.netifera.platform.log.internal; import com.netifera.platform.api.log.ILogManager; import com.netifera.platform.api.log.ILogReader; import com.netifera.platform.api.log.ILogger; import com.netifera.platform.api.log.ILogEntry.LogLevel; public class Logger implements ILogger { private final String name; private final ILogReader reader; private final LogManager manager; private boolean debugEnabled; Logger(String name, LogManager manager) { this.name = name; this.reader = manager; this.manager = manager; debugEnabled = false; } public ILogManager getManager() { return manager; } public void debug(String message) { debug(message, null); } public void debug(String message, Throwable exception) { if(debugEnabled) { log(LogLevel.DEBUG, message, exception); } } public void enableDebug() { debugEnabled = true; } public void disableDebug() { debugEnabled = false; } public void error(String message) { error(message, null); } public void error(String message, Throwable exception) { log(LogLevel.ERROR, message, exception); } public void info(String message) { info(message, null); } public void info(String message, Throwable exception) { log(LogLevel.INFO, message, exception); } public void warning(String message) { warning(message, null); } public void warning(String message, Throwable exception) { log(LogLevel.WARNING, message, exception); } private void log(LogLevel level, String message, Throwable exception) { if(reader != null) { reader.log(new LogEntry(level, name, message, exception)); } } }