Exemple #1
0
def writeBacktrace(logger, log_level=ERROR, clear=True):
    log_func = getLogFunc(logger, log_level)
    try:
        info = exc_info()
        trace = format_exception(*info)
        if clear:
            exc_clear()
        if trace[0] != "None\n":
            trace = ''.join(trace).rstrip()
            for line in trace.split("\n"):
                log_func(line.rstrip())
            return
    except:
        pass
    log_func("Unable to get backtrace")
Exemple #2
0
def writeBacktrace(logger, log_level=ERROR):
    """
    Write a backtrace into the logger with the specified log level.
    """
    log_func = getLogFunc(logger, log_level)
    try:
        info = exc_info()
        trace = format_exception(*info)
        if trace[0] != "None\n":
            trace = ''.join(trace).rstrip()
            for line in trace.split("\n"):
                log_func(line.rstrip())
            return
    except:
        pass
    log_func("Unable to get backtrace")
Exemple #3
0
def writeError(logger, error, title="ERROR", log_level=ERROR):
    """
    Write an error into the logger:
     - logger: the logger (if None, use getLogger())
     - error: the exception objet
     - title: error message prefix (eg. title="Initialization error")
     - log_level: log level of the error

    If the exception is a SystemExit or a KeyboardInterrupt, re-emit
    (raise) the exception and don't write it.
    """
    if not logger:
        logger = getLogger()
    if error.__class__ in (SystemExit, KeyboardInterrupt):
        raise error
    log_func = getLogFunc(logger, log_level)
    log_func("%s: %s" % (title, formatError(error)))
    writeBacktrace(logger, log_level=changeLogLevel(log_level, -1))
Exemple #4
0
def writeError(logger, error, title="ERROR", log_level=ERROR):
    if error.__class__ is SystemExit:
        raise error
    log_func = getLogFunc(logger, log_level)
    log_func("%s: %s" % (title, formatError(error)))
    writeBacktrace(logger, log_level=changeLogLevel(log_level, -1))