(self, color=True, datefmt=None)
r"""
        :arg bool color: Enables color support.
        :arg string fmt: Log message format.
        It will be applied to the attributes dict of log records. The
        text between ``%(color)s`` and ``%(end_color)s`` will be colored
        depending on the level if color support is on.
        :arg dict colors: color mappings from logging level to terminal color
        code
        :arg string datefmt: Datetime format.
        Used for formatting ``(asctime)`` placeholder in ``prefix_fmt``.
        .. versionchanged:: 3.2
        Added ``fmt`` and ``datefmt`` arguments.
r"""
        :arg bool color: Enables color support.
        :arg string fmt: Log message format.
        It will be applied to the attributes dict of log records. The
        text between ``%(color)s`` and ``%(end_color)s`` will be colored
        depending on the level if color support is on.
        :arg dict colors: color mappings from logging level to terminal color
        code
        :arg string datefmt: Datetime format.
        Used for formatting ``(asctime)`` placeholder in ``prefix_fmt``.
        .. versionchanged:: 3.2
        Added ``fmt`` and ``datefmt`` arguments.
r : arg bool color : Enables color support . : arg string fmt : Log message format . It will be applied to the attributes dict of log records . The text between % ( color ) s and % ( end_color ) s will be colored depending on the level if color support is on . : arg dict colors : color mappings from logging level to terminal color code : arg string datefmt : Datetime format . Used for formatting ( asctime ) placeholder in prefix_fmt . .. versionchanged :: 3 . 2 Added fmt and datefmt arguments .
def __init__(self, color=True, datefmt=None):
        r"""
        :arg bool color: Enables color support.
        :arg string fmt: Log message format.
        It will be applied to the attributes dict of log records. The
        text between ``%(color)s`` and ``%(end_color)s`` will be colored
        depending on the level if color support is on.
        :arg dict colors: color mappings from logging level to terminal color
        code
        :arg string datefmt: Datetime format.
        Used for formatting ``(asctime)`` placeholder in ``prefix_fmt``.
        .. versionchanged:: 3.2
        Added ``fmt`` and ``datefmt`` arguments.
        """
        logging.Formatter.__init__(self, datefmt=datefmt)
        self._colors = {}
        if color and _stderr_supports_color():
            # The curses module has some str/bytes confusion in
            # python3. Until version 3.2.3, most methods return
            # bytes, but only accept strings. In addition, we want to
            # output these strings with the logging module, which
            # works with unicode strings. The explicit calls to
            # unicode() below are harmless in python2 but will do the
            # right conversion in python 3.
            fg_color = (curses.tigetstr("setaf") or
                        curses.tigetstr("setf") or "")
            if (3, 0) < sys.version_info < (3, 2, 3):
                fg_color = str(fg_color, "ascii")

            for levelno, code in self.DEFAULT_COLORS.items():
                self._colors[levelno] = str(
                    curses.tparm(fg_color, code), "ascii")
            self._normal = str(curses.tigetstr("sgr0"), "ascii")

            scr = curses.initscr()
            self.termwidth = scr.getmaxyx()[1]
            curses.endwin()
        else:
            self._normal = ''
            # Default width is usually 80, but too wide is
            # worse than too narrow
            self.termwidth = 70
def __init__ ( self , color = True , datefmt = None ) : logging . Formatter . __init__ ( self , datefmt = datefmt ) self . _colors = { } if color and _stderr_supports_color ( ) : # The curses module has some str/bytes confusion in # python3. Until version 3.2.3, most methods return # bytes, but only accept strings. In addition, we want to # output these strings with the logging module, which # works with unicode strings. The explicit calls to # unicode() below are harmless in python2 but will do the # right conversion in python 3. fg_color = ( curses . tigetstr ( "setaf" ) or curses . tigetstr ( "setf" ) or "" ) if ( 3 , 0 ) < sys . version_info < ( 3 , 2 , 3 ) : fg_color = str ( fg_color , "ascii" ) for levelno , code in self . DEFAULT_COLORS . items ( ) : self . _colors [ levelno ] = str ( curses . tparm ( fg_color , code ) , "ascii" ) self . _normal = str ( curses . tigetstr ( "sgr0" ) , "ascii" ) scr = curses . initscr ( ) self . termwidth = scr . getmaxyx ( ) [ 1 ] curses . endwin ( ) else : self . _normal = '' # Default width is usually 80, but too wide is # worse than too narrow self . termwidth = 70