public void start() {
   if (level != null) {
     originalState = loggingSystem.on(level, level);
   } else {
     originalState = loggingSystem.snapshot();
   }
 }
 public void stop() {
   try {
     if (originalState != null) {
       loggingSystem.restore(originalState);
     }
   } finally {
     originalState = null;
   }
 }
    public void setLevel(LogLevel logLevel) {
      if (this.level == logLevel) {
        return;
      }

      this.level = logLevel;
      if (originalState == null) {
        // Not started, don't apply the changes
        return;
      }
      loggingSystem.on(logLevel, logLevel);
    }