Browse Source

[2445] Don't replace appenders in processSpecification()

slightly changed outer layer process() call so it isn't necessary anymore
Jelte Jansen 12 years ago
parent
commit
dd2d08d8cb
2 changed files with 3 additions and 8 deletions
  1. 1 1
      src/lib/log/logger_manager.h
  2. 2 7
      src/lib/log/logger_manager_impl.cc

+ 1 - 1
src/lib/log/logger_manager.h

@@ -93,7 +93,7 @@ public:
     void process() {
         // empty iterator; set defaults
         const LoggerSpecification spec;
-        processSpecification(spec);
+        process(spec);
     }
 
     /// \brief Run-Time Initialization

+ 2 - 7
src/lib/log/logger_manager_impl.cc

@@ -70,11 +70,10 @@ LoggerManagerImpl::processSpecification(const LoggerSpecification& spec) {
     // Set the additive flag.
     logger.setAdditivity(spec.getAdditive());
 
-    // Replace all appenders for this logger.
-    logger.removeAllAppenders();
-
     // Output options given?
     if (spec.optionCount() > 0) {
+        // Replace all appenders for this logger.
+        logger.removeAllAppenders();
 
         // Now process output specifications.
         for (LoggerSpecification::const_iterator i = spec.begin();
@@ -102,10 +101,6 @@ LoggerManagerImpl::processSpecification(const LoggerSpecification& spec) {
                           i->destination);
             }
         }
-    } else {
-        // If no output options are given, use a default appender
-        OutputOption opt;
-        createConsoleAppender(logger, opt);
     }
     // Should anything be left in the buffer, this is the time to flush it.
     getLogBuffer().flush();