Skip to content

request_utils

get_default_logger(name)

Get a logger from default logging manager. If no handler is associated, add a default NullHandler

Source code in server/vendor/atlassian/request_utils.py
27
28
29
30
31
32
33
34
35
36
37
38
39
def get_default_logger(name):
    """Get a logger from default logging manager. If no handler
    is associated, add a default NullHandler"""

    logger = logging.getLogger(name)
    if not logger_has_handlers(logger):
        # If logging is not configured in the current project, configure
        # this logger to discard all logs messages. This will prevent
        # the 'No handlers could be found for logger XXX' error on Python 2,
        # and avoid redirecting errors to the default 'lastResort'
        # StreamHandler on Python 3
        logger.addHandler(logging.NullHandler())
    return logger

logger_has_handlers(logger)

Since Python 2 doesn't provide Logger.hasHandlers(), we have to perform the lookup by ourselves.

Source code in server/vendor/atlassian/request_utils.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def logger_has_handlers(logger):
    """Since Python 2 doesn't provide Logger.hasHandlers(), we have to
    perform the lookup by ourselves."""

    if PY3:
        return logger.hasHandlers()
    else:
        c = logger
        rv = False
        while c:
            if c.handlers:
                rv = True
                break
            if not c.propagate:
                break
            else:
                c = c.parent
        return rv