Mercurial Hosting > nabble
view src/nabble/view/web/template/NamlLogger.java @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children |
line wrap: on
line source
package nabble.view.web.template; import java.util.Map; import java.util.HashMap; import nabble.model.Init; import nabble.model.Site; final class NamlLogger { // log size varies between NAML_LOG_SIZE and 2*NAML_LOG_SIZE private static final int NAML_LOG_SIZE = Init.get("NAML_LOG_SIZE",1000000); private String old = ""; private final StringBuilder buf = new StringBuilder(); private NamlLogger() {} synchronized void log(String msg) { buf.append(msg).append("\r\n"); if( buf.length() >= NAML_LOG_SIZE ) { old = buf.toString(); buf.setLength(0); } } synchronized String getLog() { return old + buf; } private static final Map<Long,NamlLogger> loggers = new HashMap<Long,NamlLogger>(); static synchronized NamlLogger getLogger(Site site) { Long id = site.getId(); NamlLogger logger = loggers.get(id); if( logger == null ) { logger = new NamlLogger(); loggers.put(id,logger); } return logger; } static synchronized void removeLogger(Site site) { loggers.remove(site.getId()); } }