Button up some details. Only issue messages to console when

-Dopenrocket.debug is defined.  Fixed the jar to include the slf4j and
logback jars.  Fixed source attachement for logback-core jar.
This commit is contained in:
kruland2607 2013-05-10 23:50:35 -05:00
parent 9bb6a4933b
commit 65eeb0833b
5 changed files with 36 additions and 17 deletions

View File

@ -32,7 +32,7 @@
<classpathentry kind="lib" path="lib-test/test-plugin.jar"/>
<classpathentry kind="lib" path="lib/annotation-detector-3.0.2-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="lib/logback-classic-1.0.12.jar" sourcepath="reference/logback-classic-1.0.12-sources.jar"/>
<classpathentry kind="lib" path="lib/logback-core-1.0.12.jar" sourcepath="lib/logback-core-1.0.7.jar"/>
<classpathentry kind="lib" path="lib/logback-core-1.0.12.jar" sourcepath="reference/logback-core-1.0.12-sources.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.7.5.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -84,7 +84,7 @@
</manifest>
<!-- Include, in the root of the JAR, the resources needed by OR -->
<fileset dir="${src.dir}/" includes="META-INF/" />
<fileset dir="${src.dir}/" includes="META-INF/,logback.xml" />
<fileset dir="${resources.dir}/" />
@ -102,7 +102,10 @@
<zipfileset src="${lib.dir}/opencsv-2.3.jar"/>
<zipfileset src="${lib.dir}/OrangeExtensions-1.2.jar"/>
<zipfileset src="${lib.dir}/annotation-detector-3.0.2-SNAPSHOT.jar"/>
<zipfileset src="${lib.dir}/slf4j-api-1.7.5.jar"/>
<zipfileset src="${lib.dir}/logback-classic-1.0.12.jar"/>
<zipfileset src="${lib.dir}/logback-core-1.0.12.jar"/>
<!-- JOGL libraries need to be jar-in-jar -->
<zipfileset dir="${lib.dir}/jogl" prefix="lib">

View File

@ -1,18 +1,8 @@
<configuration>
<evaluator name="BAD"
class="ch.qos.logback.classic.boolex.OnErrorEvaluator" />
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern><![CDATA[%-8relative %-5marker %-5level [%thread] %logger{2} - %message%n%caller{2, BAD}]]></pattern>
</encoder>
</appender>
<appender name="buffer" class="net.sf.openrocket.logging.LogbackBufferLoggerAdaptor">
<encoder>
<pattern><![CDATA[%-8relative %-5marker %-5level [%thread] %logger{2} - %message%n%caller{2, BAD}]]></pattern>
</encoder>
<configuration debug="false">
<appender name="buffer"
class="net.sf.openrocket.logging.LogbackBufferLoggerAdaptor">
</appender>
<root level="TRACE">
<appender-ref ref="stdout" />
<appender-ref ref="buffer" />
</root>
</configuration>

View File

@ -3,6 +3,10 @@ package net.sf.openrocket.logging;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.ConsoleAppender;
public class LoggingSystemSetup {
@ -12,6 +16,25 @@ public class LoggingSystemSetup {
// there is an appender named "buffer" and that appender
// is the LogbackBufferLoggerAdapter.
/**
* Add a Console Appender. We do this programmatically so the application does not need
* to include additional jars required for the logback <if> syntax to function.
*/
public static void addConsoleAppender() {
Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
ConsoleAppender<ILoggingEvent> appender = new ConsoleAppender<ILoggingEvent>();
appender.setName("console");
appender.setContext(context);
PatternLayoutEncoder layout = new PatternLayoutEncoder();
layout.setContext(context);
layout.setPattern("%-8relative %-5marker %-5level [%thread] %logger{2} - %message%n%caller{2, BAD}");
layout.start();
appender.setEncoder(layout);
appender.start();
logger.addAppender(appender);
}
/**
* Get the logger to be used in logging.
*

View File

@ -10,6 +10,7 @@ import net.sf.openrocket.l10n.L10N;
import net.sf.openrocket.l10n.ResourceBundleTranslator;
import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.logging.LogLevel;
import net.sf.openrocket.logging.LoggingSystemSetup;
import net.sf.openrocket.logging.PrintStreamLogger;
import net.sf.openrocket.logging.PrintStreamToSLF4J;
import net.sf.openrocket.plugin.PluginModule;
@ -89,7 +90,9 @@ public class GuiceStartup {
* Initializes the logging system.
*/
public static void initializeLogging() {
if (System.getProperty("openrocket.debug") != null) {
LoggingSystemSetup.addConsoleAppender();
}
//Replace System.err with a PrintStream that logs lines to DEBUG, or VBOSE if they are indented.
//If debug info is not being output to the console then the data is both logged and written to
//stderr.