==== Patch level 1 Source: 1adc4bfb-2c32-0410-81b9-bf0f0eac59bd:/lb:64610 Target: f68acad3-5d13-0410-acce-bcc9b79e5f6f:/logback/trunk:1602 (http://svn.qos.ch/repos/logback/trunk) Log: r64609@spiceweasel: fowles | 2008-01-07 16:01:45 -0500 creating a local branch r64610@spiceweasel: fowles | 2008-01-07 17:42:28 -0500 Add system properties to control the following default configuration options: - config file - log level - use a console plugin (and port) === logback-classic/src/main/java/ch/qos/logback/classic/BasicConfigurator.java ================================================================== --- logback-classic/src/main/java/ch/qos/logback/classic/BasicConfigurator.java (revision 1602) +++ logback-classic/src/main/java/ch/qos/logback/classic/BasicConfigurator.java (patch log-property-config level 1) @@ -12,6 +12,8 @@ import org.slf4j.LoggerFactory; +import ch.qos.logback.classic.filter.ThresholdFilter; +import ch.qos.logback.classic.joran.action.ConsolePluginAction; import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.core.ConsoleAppender; import ch.qos.logback.core.status.InfoStatus; @@ -32,15 +34,26 @@ ConsoleAppender ca = new ConsoleAppender(); ca.setContext(lc); ca.setName("console"); + + String pattern = System.getProperty("logback.default-pattern", + "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); PatternLayout pl = new PatternLayout(); pl.setContext(lc); - pl.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); + pl.setPattern(pattern); pl.start(); - ca.setLayout(pl); ca.start(); + + + boolean useConsole = Boolean.getBoolean("logback.default-log-to-console"); + if(useConsole) { + ConsolePluginAction.configure(lc, Integer.getInteger("logback.default-console-port")); + } + + String level = System.getProperty("logback.default-log-level", "DEBUG"); Logger rootLogger = lc.getLogger(LoggerContext.ROOT_NAME); rootLogger.addAppender(ca); + rootLogger.setLevel(Level.toLevel(level)); } public static void configureDefaultContext() { === logback-classic/src/main/java/ch/qos/logback/classic/joran/action/ConsolePluginAction.java ================================================================== --- logback-classic/src/main/java/ch/qos/logback/classic/joran/action/ConsolePluginAction.java (revision 1602) +++ logback-classic/src/main/java/ch/qos/logback/classic/joran/action/ConsolePluginAction.java (patch log-property-config level 1) @@ -20,9 +20,7 @@ String portStr = attributes.getValue(PORT_ATTR); Integer port = null; - if (portStr == null) { - port = DEFAULT_PORT; - } else { + if (portStr != null) { try { port = Integer.valueOf(portStr); } catch (NumberFormatException ex) { @@ -32,6 +30,15 @@ } LoggerContext lc = (LoggerContext)ec.getContext(); + configure(lc, port); + addInfo("Sending LoggingEvents to the plugin using port " + port); + } + + public static void configure(LoggerContext lc, Integer port) { + if(port == null) { + port = DEFAULT_PORT; + } + SocketAppender appender = new SocketAppender(); appender.setContext(lc); appender.setIncludeCallerData(true); @@ -40,8 +47,6 @@ appender.start(); Logger root = lc.getLogger(LoggerContext.ROOT_NAME); root.addAppender(appender); - - addInfo("Sending LoggingEvents to the plugin using port " + port); } @Override === logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java ================================================================== --- logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java (revision 1602) +++ logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java (patch log-property-config level 1) @@ -1,5 +1,6 @@ package ch.qos.logback.classic.util; +import java.net.MalformedURLException; import java.net.URL; import ch.qos.logback.classic.BasicConfigurator; @@ -25,8 +26,21 @@ public static void autoConfig(LoggerContext loggerContext, ClassLoader classLoader) throws JoranException { - URL url = Loader.getResource(TEST_AUTOCONFIG_FILE, classLoader); + URL url = null; if (url == null) { + String logbackConfigFile = System.getProperty("logback.config-file", null); + if(logbackConfigFile != null) { + try { + url = new URL(logbackConfigFile); + } catch (MalformedURLException e) { + //we tried + } + } + } + if (url == null) { + url = Loader.getResource(TEST_AUTOCONFIG_FILE, classLoader); + } + if (url == null) { url = Loader.getResource(AUTOCONFIG_FILE, classLoader); } ==== BEGIN SVK PATCH BLOCK ==== Version: svk v2.0.2 (linux) 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 sHuorP4dWAh+kw== ==== END SVK PATCH BLOCK ====