Changeset 998


Ignore:
Timestamp:
2008-12-18 16:35:21 (4 years ago)
Author:
bruno
Message:

Allow to set logging property to enable console logging similar to those of the runtime CLI for the AbstractRuntimeTest?. They can be set via system properties.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/kauri-runtime-testfw/src/main/java/org/kauriproject/runtime/testfw/AbstractRuntimeTest.java

    r993 r998  
    177177 
    178178    protected void setUpLogging() { 
    179         // TODO might be useful to introduce similar options like for the Runtime CLI 
    180         //      to easily enable more logging for certain categories (could be passed 
    181         //      as system properties, via -D) 
     179        // By passing these system properties, you can easily enable a certain level 
     180        // of debugging for a certain log category 
     181        String consoleLoggingLevel = System.getProperty("console-logging"); 
     182        String consoleLogCategory = System.getProperty("console-log-category"); 
     183 
    182184        String appenderName = "abstract-runtime-test-console-appender"; 
    183         Logger logger = Logger.getRootLogger(); 
    184         if (logger.getAppender(appenderName) == null) { 
     185        Logger rootLogger = Logger.getRootLogger(); 
     186        if (rootLogger.getAppender(appenderName) == null) { 
    185187            ConsoleAppender consoleAppender = new ConsoleAppender(); 
    186188            consoleAppender.setName(appenderName); 
    187189            consoleAppender.setLayout(new PatternLayout("[%t] %-5p %c - %m%n")); 
    188190            consoleAppender.activateOptions(); 
    189  
    190             logger.setLevel(Level.WARN); 
    191             logger.addAppender(consoleAppender); 
     191            rootLogger.addAppender(consoleAppender); 
     192 
     193            if (consoleLoggingLevel != null) { 
     194                Level level = null; 
     195                if (consoleLoggingLevel.equalsIgnoreCase("trace")) 
     196                    level = Level.TRACE; 
     197                else if (consoleLoggingLevel.equalsIgnoreCase("debug")) 
     198                    level = Level.DEBUG; 
     199                else if (consoleLoggingLevel.equalsIgnoreCase("info")) 
     200                    level = Level.INFO; 
     201                else if (consoleLoggingLevel.equalsIgnoreCase("warn")) 
     202                    level = Level.WARN; 
     203                else if (consoleLoggingLevel.equalsIgnoreCase("error")) 
     204                    level = Level.ERROR; 
     205                else if (consoleLoggingLevel.equalsIgnoreCase("fatal")) 
     206                    level = Level.FATAL; 
     207                else 
     208                    System.err.println("Unrecognized log level: " + consoleLoggingLevel); 
     209 
     210                if (level != null) { 
     211                    System.out.println("Setting console output for log level " + level.toString() + " on category " + consoleLogCategory); 
     212                    Logger logger = consoleLogCategory == null ? Logger.getRootLogger() : Logger.getLogger(consoleLogCategory); 
     213                    logger.setLevel(level); 
     214 
     215                    if (consoleLogCategory != null) 
     216                        rootLogger.setLevel(Level.WARN); 
     217                } 
     218            } else { 
     219                rootLogger.setLevel(Level.WARN); 
     220            } 
     221 
    192222        } 
    193223    } 
Note: See TracChangeset for help on using the changeset viewer.