Example #1
0
def SetupLogging():
  """Sets up a logging handler with dftimewolf's custom formatter."""
  # Clear root handlers (for dependencies that are setting them)
  root_log = logging.getLogger()
  root_log.handlers = []

  # Add a silent default stream handler, this is automatically set
  # when other libraries call logging.info() or similar methods.
  root_handler = logging.StreamHandler()
  root_handler.addFilter(lambda x: False)
  root_log.addHandler(root_handler)

  # We want all DEBUG messages and above.
  # TODO(tomchop): Consider making this a parameter in the future.
  logger.setLevel(logging.DEBUG)

  # File handler needs go be added first because it doesn't format messages
  # with color
  file_handler = handlers.RotatingFileHandler(
      logging_utils.DEFAULT_LOG_FILE,
      maxBytes=logging_utils.MAX_BYTES,
      backupCount=logging_utils.BACKUP_COUNT)
  file_handler.setFormatter(logging_utils.WolfFormatter(colorize=False))
  logger.addHandler(file_handler)

  console_handler = logging.StreamHandler()
  colorize = not bool(os.environ.get('DFTIMEWOLF_NO_RAINBOW'))
  console_handler.setFormatter(logging_utils.WolfFormatter(colorize=colorize))
  logger.addHandler(console_handler)
  logger.debug(
      'Logging to stdout and {0:s}'.format(logging_utils.DEFAULT_LOG_FILE))
Example #2
0
    def SetupLogging(self):
        """Sets up stream and file logging for a specific module."""
        self.logger = logging.getLogger(name=self.__class__.__name__)

        file_handler = handlers.RotatingFileHandler(
            logging_utils.DEFAULT_LOG_FILE,
            maxBytes=logging_utils.MAX_BYTES,
            backupCount=logging_utils.BACKUP_COUNT)
        file_handler.setFormatter(logging_utils.WolfFormatter(colorize=False))
        self.logger.addHandler(file_handler)

        console_handler = logging.StreamHandler()
        formatter = logging_utils.WolfFormatter(random_color=True)
        console_handler.setFormatter(formatter)

        self.logger.addHandler(console_handler)