package com.baasbox.service.logging;
import java.util.ArrayList;
import com.google.common.base.Joiner;
public class PushLogger {
private static ThreadLocal<PushLogger> logger = new ThreadLocal<PushLogger>() {
protected PushLogger initialValue() {return new PushLogger();};
};
private ArrayList<String> logs=new ArrayList<String>();
private boolean logEnabled=false;
public static PushLogger getInstance(){
return logger.get();
}
public PushLogger init(){
logs.clear();
return this;
}
public PushLogger enable(){
logEnabled=true;
return this;
}
public PushLogger disable(){
logEnabled=false;
return this;
}
public boolean isEnabled(){
return logEnabled;
}
public PushLogger addMessage(String message){
if (logEnabled) logs.add(message);
return this;
}
public PushLogger addMessage(String message, Object... params){
if (logEnabled) logs.add(String.format(message, params));
return this;
}
public String[] messages(){
return logs.toArray(new String[]{});
}
@Override
public String toString(){
return Joiner.on(System.lineSeparator()).join(logs);
}
private PushLogger() {}
}