From 65eeb0833bfc71ea7a3a9f861b8dd7373cd7fd24 Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Fri, 10 May 2013 23:50:35 -0500 Subject: [PATCH] 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. --- core/.classpath | 2 +- core/build.xml | 7 ++++-- core/src/logback.xml | 16 +++---------- .../logging/LoggingSystemSetup.java | 23 +++++++++++++++++++ .../sf/openrocket/startup/GuiceStartup.java | 5 +++- 5 files changed, 36 insertions(+), 17 deletions(-) diff --git a/core/.classpath b/core/.classpath index 440a891bb..dd7a75cf8 100644 --- a/core/.classpath +++ b/core/.classpath @@ -32,7 +32,7 @@ - + diff --git a/core/build.xml b/core/build.xml index 9fd561139..04820e3a4 100644 --- a/core/build.xml +++ b/core/build.xml @@ -84,7 +84,7 @@ - + @@ -102,7 +102,10 @@ - + + + + diff --git a/core/src/logback.xml b/core/src/logback.xml index 2d46da464..930599f30 100644 --- a/core/src/logback.xml +++ b/core/src/logback.xml @@ -1,18 +1,8 @@ - - - - - - - - - - - + + - \ No newline at end of file diff --git a/core/src/net/sf/openrocket/logging/LoggingSystemSetup.java b/core/src/net/sf/openrocket/logging/LoggingSystemSetup.java index 68edcfdce..ffdcc63d7 100644 --- a/core/src/net/sf/openrocket/logging/LoggingSystemSetup.java +++ b/core/src/net/sf/openrocket/logging/LoggingSystemSetup.java @@ -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 syntax to function. + */ + public static void addConsoleAppender() { + Logger logger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); + LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); + ConsoleAppender appender = new ConsoleAppender(); + 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. * diff --git a/core/src/net/sf/openrocket/startup/GuiceStartup.java b/core/src/net/sf/openrocket/startup/GuiceStartup.java index 1aa6ffb42..8b09d66aa 100644 --- a/core/src/net/sf/openrocket/startup/GuiceStartup.java +++ b/core/src/net/sf/openrocket/startup/GuiceStartup.java @@ -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.