Removed horrible static initialization of logging system and instead
rely on magic - the fact we are using logback classic and the logger is named "buffer".
This commit is contained in:
parent
8c8b51fe24
commit
bd3c68131a
@ -7,19 +7,31 @@ import ch.qos.logback.core.AppenderBase;
|
||||
|
||||
public class LogbackBufferLoggerAdaptor extends AppenderBase<ILoggingEvent> {
|
||||
|
||||
private final LogHelper logHelper;
|
||||
private final DelegatorLogger logHelper;
|
||||
private final LogLevelBufferLogger logBuffer;
|
||||
|
||||
public LogbackBufferLoggerAdaptor() {
|
||||
logHelper = LoggingSystemSetup.getInstance();
|
||||
private static final int LOG_BUFFER_LENGTH = 50;
|
||||
|
||||
public LogbackBufferLoggerAdaptor(int bufferLength) {
|
||||
logHelper = new DelegatorLogger();
|
||||
logBuffer = new LogLevelBufferLogger(bufferLength);
|
||||
logHelper.addLogger(logBuffer);
|
||||
}
|
||||
|
||||
public LogbackBufferLoggerAdaptor(LogHelper logHelper) {
|
||||
this.logHelper = logHelper;
|
||||
public LogbackBufferLoggerAdaptor() {
|
||||
this(LOG_BUFFER_LENGTH);
|
||||
}
|
||||
|
||||
DelegatorLogger getLogHelper() {
|
||||
return logHelper;
|
||||
}
|
||||
|
||||
LogLevelBufferLogger getLogBuffer() {
|
||||
return logBuffer;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void append(ILoggingEvent e) {
|
||||
e.getCallerData();
|
||||
LogLine ll = toLogLine(e);
|
||||
|
||||
logHelper.log(ll);
|
||||
|
@ -1,18 +1,16 @@
|
||||
package net.sf.openrocket.logging;
|
||||
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import ch.qos.logback.classic.Logger;
|
||||
|
||||
|
||||
public class LoggingSystemSetup {
|
||||
|
||||
private static final DelegatorLogger delegator = new DelegatorLogger();
|
||||
|
||||
private static final int LOG_BUFFER_LENGTH = 50;
|
||||
|
||||
private static final LogLevelBufferLogger llbl = new LogLevelBufferLogger(LOG_BUFFER_LENGTH);
|
||||
|
||||
static {
|
||||
delegator.addLogger(llbl);
|
||||
|
||||
}
|
||||
// This class is highly dependent on the logback.xml file.
|
||||
// It assumes logback is the logging backend and that
|
||||
// there is an appender named "buffer" and that appender
|
||||
// is the LogbackBufferLoggerAdapter.
|
||||
|
||||
/**
|
||||
* Get the logger to be used in logging.
|
||||
@ -20,11 +18,15 @@ public class LoggingSystemSetup {
|
||||
* @return the logger to be used in all logging.
|
||||
*/
|
||||
public static DelegatorLogger getInstance() {
|
||||
return delegator;
|
||||
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
|
||||
LogbackBufferLoggerAdaptor adapater = (LogbackBufferLoggerAdaptor) logger.getAppender("buffer");
|
||||
return adapater.getLogHelper();
|
||||
}
|
||||
|
||||
public static LogLevelBufferLogger getBufferLogger() {
|
||||
return llbl;
|
||||
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
|
||||
LogbackBufferLoggerAdaptor adapater = (LogbackBufferLoggerAdaptor) logger.getAppender("buffer");
|
||||
return adapater.getLogBuffer();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,16 +18,13 @@ public class LogLevelBufferLoggerTest {
|
||||
@Test
|
||||
public void testLogger() {
|
||||
|
||||
DelegatorLogger l = new DelegatorLogger();
|
||||
LogLevelBufferLogger llbl = new LogLevelBufferLogger(4);
|
||||
|
||||
// assume SLF4J is bound to logback in the current environment
|
||||
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
|
||||
|
||||
// Call context.reset() to clear any previous configuration, e.g. default
|
||||
// configuration. For multi-step configuration, omit calling context.reset().
|
||||
context.reset();
|
||||
LogbackBufferLoggerAdaptor a = new LogbackBufferLoggerAdaptor(llbl);
|
||||
LogbackBufferLoggerAdaptor a = new LogbackBufferLoggerAdaptor(4);
|
||||
a.start();
|
||||
logger.addAppender(a);
|
||||
|
||||
@ -52,6 +49,7 @@ public class LogLevelBufferLoggerTest {
|
||||
logger.debug("debug 8");
|
||||
logger.info("info 6");
|
||||
|
||||
LogLevelBufferLogger llbl = LoggingSystemSetup.getBufferLogger();
|
||||
List<LogLine> list = llbl.getLogs();
|
||||
assertEquals(16, list.size());
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user