Esempio n. 1
0
def _log(opt_str, value, parser):
    global logging
    if not logging_t:
        import logging_t
        logging_t.basicConfig()

    if opt_str.endswith('-info'):
        logging_t.getLogger(value).setLevel(logging_t.INFO)
    elif opt_str.endswith('-debug'):
        logging_t.getLogger(value).setLevel(logging_t.DEBUG)
Esempio n. 2
0
def class_logger(cls):
    logger = logging_t.getLogger(cls.__module__ + "." + cls.__name__)
    cls._should_log_debug = lambda self: logger.isEnabledFor(logging_t.DEBUG)
    cls._should_log_info = lambda self: logger.isEnabledFor(logging_t.INFO)
    cls.logger = logger
    _logged_classes.add(cls)
    return cls
Esempio n. 3
0
    def __init__(self, echo, name):
        self.echo = echo
        self.logger = logging_t.getLogger(name)

        # if echo flag is enabled and no handlers,
        # add a handler to the list
        if self._echo_map[echo] <= logging_t.INFO \
           and not self.logger.handlers:
            _add_default_handler(self.logger)
Esempio n. 4
0
def _log(type, message, *args, **kwargs):
    """Log into the internal werkzeug logger."""
    global _logger
    if _logger is None:
        import logging_t
        _logger = logging_t.getLogger('werkzeug')
        # Only set up a default log handler if the
        # end-user application didn't set anything up.
        if not logging_t.root.handlers and _logger.level == logging_t.NOTSET:
            _logger.setLevel(logging_t.INFO)
            handler = logging_t.StreamHandler()
            _logger.addHandler(handler)
    getattr(_logger, type)(message.rstrip(), *args, **kwargs)
Esempio n. 5
0
def add_stderr_logger(level=logging_t.DEBUG):
    """
    Helper for quickly adding a StreamHandler to the logger. Useful for
    debugging.

    Returns the handler after adding it.
    """
    # This method needs to be in this __init__.py to get the __name__ correct
    # even if urllib3 is vendored within another package.
    logger = logging_t.getLogger(__name__)
    handler = logging_t.StreamHandler()
    handler.setFormatter(
        logging_t.Formatter('%(asctime)s %(levelname)s %(message)s'))
    logger.addHandler(handler)
    logger.setLevel(level)
    logger.debug('Added a stderr logging handler to logger: %s', __name__)
    return handler
Esempio n. 6
0
def create_logger(app):
    """Creates a logger for the given application.  This logger works
    similar to a regular Python logger but changes the effective logging
    level based on the application's debug flag.  Furthermore this
    function also removes all attached handlers in case there was a
    logger with the log name before.
    """
    Logger = getLoggerClass()

    class DebugLogger(Logger):
        def getEffectiveLevel(self):
            if self.level == 0 and app.debug:
                return DEBUG
            return Logger.getEffectiveLevel(self)

    class DebugHandler(StreamHandler):
        def emit(self, record):
            if app.debug and _should_log_for(app, 'debug'):
                StreamHandler.emit(self, record)

    class ProductionHandler(StreamHandler):
        def emit(self, record):
            if not app.debug and _should_log_for(app, 'production'):
                StreamHandler.emit(self, record)

    debug_handler = DebugHandler()
    debug_handler.setLevel(DEBUG)
    debug_handler.setFormatter(Formatter(DEBUG_LOG_FORMAT))

    prod_handler = ProductionHandler(_proxy_stream)
    prod_handler.setLevel(ERROR)
    prod_handler.setFormatter(Formatter(PROD_LOG_FORMAT))

    logger = getLogger(app.logger_name)
    # just in case that was not a new logger, get rid of all the handlers
    # already attached to it.
    del logger.handlers[:]
    logger.__class__ = DebugLogger
    logger.addHandler(debug_handler)
    logger.addHandler(prod_handler)

    # Disable propagation by default
    logger.propagate = False

    return logger
Esempio n. 7
0
def _showwarning(message, category, filename, lineno, file=None, line=None):
    if file is not None:
        if _warnings_showwarning is not None:
            _warnings_showwarning(
                message,
                category,
                filename,
                lineno,
                file,
                line,
            )
    else:
        if issubclass(category, PipDeprecationWarning):
            # We use a specially named logger which will handle all of the
            # deprecation messages for pip.
            logger = logging_t.getLogger("pip.deprecations")

            # This is purposely using the % formatter here instead of letting
            # the logging module handle the interpolation. This is because we
            # want it to appear as if someone typed this entire message out.
            log_message = "DEPRECATION: %s" % message

            # PipDeprecationWarnings that are Pending still have at least 2
            # versions to go until they are removed so they can just be
            # warnings.  Otherwise, they will be removed in the very next
            # version of pip. We want these to be more obvious so we use the
            # ERROR logging level.
            if issubclass(category, Pending):
                logger.warning(log_message)
            else:
                logger.error(log_message)
        else:
            _warnings_showwarning(
                message,
                category,
                filename,
                lineno,
                file,
                line,
            )
Esempio n. 8
0
def main():
    import argparse

    logger = logging_t.getLogger(__name__)
    logger.setLevel(logging_t.DEBUG)
    logger.addHandler(logging_t.StreamHandler(sys.stdout))

    parser = argparse.ArgumentParser(description="Linux distro info tool")
    parser.add_argument('--json',
                        '-j',
                        help="Output in machine readable format",
                        action="store_true")
    args = parser.parse_args()

    if args.json:
        logger.info(json.dumps(info(), indent=4, sort_keys=True))
    else:
        logger.info('Name: %s', name(pretty=True))
        distribution_version = version(pretty=True)
        if distribution_version:
            logger.info('Version: %s', distribution_version)
        distribution_codename = codename()
        if distribution_codename:
            logger.info('Codename: %s', distribution_codename)
Esempio n. 9
0
def instance_logger(instance, echoflag=None):
    """create a logger for an instance that implements :class:`.Identified`."""

    if instance.logging_name:
        name = "%s.%s.%s" % (instance.__class__.__module__,
                             instance.__class__.__name__,
                             instance.logging_name)
    else:
        name = "%s.%s" % (instance.__class__.__module__,
                          instance.__class__.__name__)

    instance._echo = echoflag

    if echoflag in (False, None):
        # if no echo setting or False, return a Logger directly,
        # avoiding overhead of filtering
        logger = logging_t.getLogger(name)
    else:
        # if a specified echo flag, return an EchoLogger,
        # which checks the flag, overrides normal log
        # levels by calling logger._log()
        logger = InstanceLogger(echoflag, name)

    instance.logger = logger
Esempio n. 10
0
from pip.baseparser import ConfigOptionParser, UpdatingDefaultsHelpFormatter
from pip.req import InstallRequirement, parse_requirements
from pip.status_codes import (
    SUCCESS,
    ERROR,
    UNKNOWN_ERROR,
    VIRTUALENV_NOT_FOUND,
    PREVIOUS_BUILD_DIR_ERROR,
)
from pip.utils import deprecation, get_prog, normalize_path
from pip.utils.logging import IndentingFormatter
from pip.utils.outdated import pip_version_check

__all__ = ['Command']

logger = logging_t.getLogger(__name__)


class Command(object):
    name = None
    usage = None
    hidden = False
    log_streams = ("ext://sys.stdout", "ext://sys.stderr")

    def __init__(self, isolated=False):
        parser_kw = {
            'usage': self.usage,
            'prog': '%s %s' % (get_prog(), self.name),
            'formatter': UpdatingDefaultsHelpFormatter(),
            'add_help_option': False,
            'name': self.name,
Esempio n. 11
0
if PY2:
    from io import BytesIO as StringIO
else:
    from io import StringIO

__all__ = [
    'rmtree', 'display_path', 'backup_dir', 'ask', 'splitext', 'format_size',
    'is_installable_dir', 'is_svn_page', 'file_contents', 'split_leading_dir',
    'has_leading_dir', 'normalize_path', 'renames', 'get_terminal_size',
    'get_prog', 'unzip_file', 'untar_file', 'unpack_file', 'call_subprocess',
    'captured_stdout', 'ensure_dir', 'ARCHIVE_EXTENSIONS',
    'SUPPORTED_EXTENSIONS', 'get_installed_version'
]

logger = std_logging.getLogger(__name__)

BZ2_EXTENSIONS = ('.tar.bz2', '.tbz')
XZ_EXTENSIONS = ('.tar.xz', '.txz', '.tlz', '.tar.lz', '.tar.lzma')
ZIP_EXTENSIONS = ('.zip', '.whl')
TAR_EXTENSIONS = ('.tar.gz', '.tgz', '.tar')
ARCHIVE_EXTENSIONS = (ZIP_EXTENSIONS + BZ2_EXTENSIONS + TAR_EXTENSIONS +
                      XZ_EXTENSIONS)
SUPPORTED_EXTENSIONS = ZIP_EXTENSIONS + TAR_EXTENSIONS
try:
    import bz2  # noqa
    SUPPORTED_EXTENSIONS += BZ2_EXTENSIONS
except ImportError:
    logger.debug('bz2 module is not available')

try:
Esempio n. 12
0
import logging_t
# 使用一个名字为fib的logger
logger = logging_t.getLogger('fib')

# 设置logger的level为DEBUG
logger.setLevel(logging_t.DEBUG)

# 创建一个输出日志到控制台的StreamHandler
hdr = logging_t.StreamHandler()
formatter = logging_t.Formatter(
    '[%(asctime)s] %(name)s:%(levelname)s: %(message)s')
hdr.setFormatter(formatter)

# 给logger添加上handler
logger.addHandler(hdr)
Esempio n. 13
0
module.  The regular dotted module namespace is used, starting at
'sqlalchemy'.  For class-level logging, the class name is appended.

The "echo" keyword parameter, available on SQLA :class:`.Engine`
and :class:`.Pool` objects, corresponds to a logger specific to that
instance only.

"""

import logging_t
import sys

# set initial level to WARN.  This so that
# log statements don't occur in the absence of explicit
# logging being enabled for 'sqlalchemy'.
rootlogger = logging_t.getLogger('sqlalchemy')
if rootlogger.level == logging_t.NOTSET:
    rootlogger.setLevel(logging_t.WARN)


def _add_default_handler(logger):
    handler = logging_t.StreamHandler(sys.stdout)
    handler.setFormatter(
        logging_t.Formatter('%(asctime)s %(levelname)s %(name)s %(message)s'))
    logger.addHandler(handler)


_logged_classes = set()


def class_logger(cls):
Esempio n. 14
0
Issue #10, see: http://code.google.com/p/urllib3/issues/detail?id=10
"""
from __future__ import absolute_import

try:
    from http.client import HTTPSConnection
except ImportError:
    from httplib import HTTPSConnection
from logging_t import getLogger
from ntlm import ntlm

from urllib3 import HTTPSConnectionPool


log = getLogger(__name__)


class NTLMConnectionPool(HTTPSConnectionPool):
    """
    Implements an NTLM authentication version of an urllib3 connection pool
    """

    scheme = 'https'

    def __init__(self, user, pw, authurl, *args, **kwargs):
        """
        authurl is a random URL on the server that is protected by NTLM.
        user is the Windows user, probably in the DOMAIN\\username format.
        pw is the password for the user.
        """
Esempio n. 15
0
def make_logging_undefined(logger=None, base=None):
    """Given a logger object this returns a new undefined class that will
    log certain failures.  It will log iterations and printing.  If no
    logger is given a default logger is created.

    Example::

        logger = logging.getLogger(__name__)
        LoggingUndefined = make_logging_undefined(
            logger=logger,
            base=Undefined
        )

    .. versionadded:: 2.8

    :param logger: the logger to use.  If not provided, a default logger
                   is created.
    :param base: the base class to add logging functionality to.  This
                 defaults to :class:`Undefined`.
    """
    if logger is None:
        import logging_t
        logger = logging_t.getLogger(__name__)
        logger.addHandler(logging_t.StreamHandler(sys.stderr))
    if base is None:
        base = Undefined

    def _log_message(undef):
        if undef._undefined_hint is None:
            if undef._undefined_obj is missing:
                hint = '%s is undefined' % undef._undefined_name
            elif not isinstance(undef._undefined_name, string_types):
                hint = '%s has no element %s' % (object_type_repr(
                    undef._undefined_obj), undef._undefined_name)
            else:
                hint = '%s has no attribute %s' % (object_type_repr(
                    undef._undefined_obj), undef._undefined_name)
        else:
            hint = undef._undefined_hint
        logger.warning('Template variable warning: %s', hint)

    class LoggingUndefined(base):
        def _fail_with_undefined_error(self, *args, **kwargs):
            try:
                return base._fail_with_undefined_error(self, *args, **kwargs)
            except self._undefined_exception as e:
                logger.error('Template variable error: %s', str(e))
                raise e

        def __str__(self):
            rv = base.__str__(self)
            _log_message(self)
            return rv

        def __iter__(self):
            rv = base.__iter__(self)
            _log_message(self)
            return rv

        if PY2:

            def __nonzero__(self):
                rv = base.__nonzero__(self)
                _log_message(self)
                return rv

            def __unicode__(self):
                rv = base.__unicode__(self)
                _log_message(self)
                return rv
        else:

            def __bool__(self):
                rv = base.__bool__(self)
                _log_message(self)
                return rv

    return LoggingUndefined
Esempio n. 16
0
import warnings

# urllib3's DependencyWarnings should be silenced.
from .packages.urllib3.exceptions import DependencyWarning
warnings.simplefilter('ignore', DependencyWarning)

from . import utils
from .models import Request, Response, PreparedRequest
from .api import request, get, head, post, patch, put, delete, options
from .sessions import session, Session
from .status_codes import codes
from .exceptions import (RequestException, Timeout, URLRequired,
                         TooManyRedirects, HTTPError, ConnectionError,
                         FileModeWarning, ConnectTimeout, ReadTimeout)

# Set default logging handler to avoid "No handler found" warnings.
import logging_t
try:  # Python 2.7+
    from logging_t import NullHandler
except ImportError:

    class NullHandler(logging_t.Handler):
        def emit(self, record):
            pass


logging_t.getLogger(__name__).addHandler(NullHandler())

# FileModeWarnings go off per the default.
warnings.simplefilter('default', FileModeWarning, append=True)
Esempio n. 17
0
from ...engine import result as _result
from ...sql import expression
from ... import types as sqltypes
from .base import PGDialect, PGCompiler, \
    PGIdentifierPreparer, PGExecutionContext, \
    ENUM, _DECIMAL_TYPES, _FLOAT_TYPES,\
    _INT_TYPES, UUID
from .hstore import HSTORE
from .json import JSON, JSONB

try:
    from uuid import UUID as _python_UUID
except ImportError:
    _python_UUID = None

logger = logging_t.getLogger('sqlalchemy.dialects.postgresql')


class _PGNumeric(sqltypes.Numeric):
    def bind_processor(self, dialect):
        return None

    def result_processor(self, dialect, coltype):
        if self.asdecimal:
            if coltype in _FLOAT_TYPES:
                return processors.to_decimal_processor_factory(
                    decimal.Decimal, self._effective_decimal_return_scale)
            elif coltype in _DECIMAL_TYPES or coltype in _INT_TYPES:
                # pg8000 returns Decimal natively for 1700
                return None
            else: