package com.nutiteq.log;
/**
* Default logger used in library (if logging will be enabled). Uses memory
* buffer of 4096 characters and prints all messages also to console.
*/
public class DefaultLogger implements Logger {
private static final String LOG_LEVEL_ERROR = "Error";
private static final String LOG_LEVEL_INFO = "Info";
private static final String LOG_LEVEL_DEBUG = "Debug";
private static final int LOG_BUFFER_SIZE = 4096;
private static final StringBuffer BUFFER = new StringBuffer();
public void error(final String message) {
logMessage(LOG_LEVEL_ERROR, message);
}
public void info(final String message) {
logMessage(LOG_LEVEL_INFO, message);
}
public void debug(final String message) {
logMessage(LOG_LEVEL_DEBUG, message);
}
public String getLog() {
return BUFFER.toString();
}
public void printStackTrace(final Throwable t) {
t.printStackTrace();
}
private void logMessage(final String level, final String message) {
final String logMessage = level + " > " + message;
System.out.println(logMessage);
checkBufferSize(logMessage);
BUFFER.insert(0, logMessage + "\n");
}
private void checkBufferSize(final String logMessage) {
if (BUFFER.length() + logMessage.length() > LOG_BUFFER_SIZE) {
BUFFER.delete(LOG_BUFFER_SIZE / 2, BUFFER.length());
}
}
}