diff options
Diffstat (limited to 'tools/drmemory/scripts/logging_utils.py')
-rw-r--r-- | tools/drmemory/scripts/logging_utils.py | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/tools/drmemory/scripts/logging_utils.py b/tools/drmemory/scripts/logging_utils.py deleted file mode 100644 index ef2d674950..0000000000 --- a/tools/drmemory/scripts/logging_utils.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright (c) 2011 The Chromium Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -''' Utility functions and objects for logging. -''' - -import logging -import sys - -class StdoutStderrHandler(logging.Handler): - ''' Subclass of logging.Handler which outputs to either stdout or stderr - based on a threshold level. - ''' - - def __init__(self, threshold=logging.WARNING, err=sys.stderr, out=sys.stdout): - ''' Args: - threshold: below this logging level messages are sent to stdout, - otherwise they are sent to stderr - err: a stream object that error messages are sent to, defaults to - sys.stderr - out: a stream object that non-error messages are sent to, defaults to - sys.stdout - ''' - logging.Handler.__init__(self) - self._err = logging.StreamHandler(err) - self._out = logging.StreamHandler(out) - self._threshold = threshold - self._last_was_err = False - - def setLevel(self, lvl): - logging.Handler.setLevel(self, lvl) - self._err.setLevel(lvl) - self._out.setLevel(lvl) - - def setFormatter(self, formatter): - logging.Handler.setFormatter(self, formatter) - self._err.setFormatter(formatter) - self._out.setFormatter(formatter) - - def emit(self, record): - if record.levelno < self._threshold: - self._out.emit(record) - self._last_was_err = False - else: - self._err.emit(record) - self._last_was_err = False - - def flush(self): - # preserve order on the flushing, the stalest stream gets flushed first - if self._last_was_err: - self._out.flush() - self._err.flush() - else: - self._err.flush() - self._out.flush() - - -FORMAT = "%(asctime)s %(filename)s [%(levelname)s] %(message)s" -DATEFMT = "%H:%M:%S" - -def config_root(level=logging.INFO, threshold=logging.WARNING, format=FORMAT, - datefmt=DATEFMT): - ''' Configure the root logger to use a StdoutStderrHandler and some default - formatting. - Args: - level: messages below this level are ignored - threshold: below this logging level messages are sent to stdout, - otherwise they are sent to stderr - format: format for log messages, see logger.Format - datefmt: format for date in log messages - - ''' - # to set the handler of the root logging object, we need to do setup - # manually rather than using basicConfig - root = logging.getLogger() - root.setLevel(level) - formatter = logging.Formatter(format, datefmt) - handler = StdoutStderrHandler(threshold=threshold) - handler.setLevel(level) - handler.setFormatter(formatter) - root.addHandler(handler) |