Esempio n. 1
0
 def format(self, record):
     msg = super().format(record)
     if not self.stream_is_tty:
         return msg
     m = split_log.match(msg)
     log_color = LOG_FORMATS.get(record.levelno, sformat.red)
     if m:
         time = sformat(m.groups()[0], sformat.magenta)
         return time + sformat(msg[m.end():], log_color)
     else:
         return sformat(msg, log_color)
Esempio n. 2
0
 def formatMessage(self, record):
     msg = super().formatMessage(record)
     if msg[0] != '{':
         return msg
     # json from AccessLogger
     obj = json.loads(msg)
     if self.stream_is_tty:
         # in future we can do clever things about colouring the message based on status code
         msg = '{} {} {}'.format(
             sformat(obj['time'], sformat.magenta),
             sformat(obj['prefix'], sformat.blue),
             sformat(obj['msg'],
                     sformat.dim if obj['dim'] else sformat.reset),
         )
     else:
         msg = '{time} {prefix} {msg}'.format(**obj)
     details = getattr(record, 'details', None)
     if details:
         msg = 'details: {}\n{}'.format(
             pformat(details, highlight=self.stream_is_tty), msg)
     return msg
Esempio n. 3
0
    def log(self, request, response, time):
        msg = '{method} {path} {code} {size} {ms:0.0f}ms'.format(
            method=request.method,
            path=request.path,
            code=response.status,
            size=self.format_size(response.body_length),
            ms=time * 1000,
        )
        time_str = (datetime.now() -
                    timedelta(seconds=time)).strftime('[%H:%M:%S]')
        if sformat:
            time_str = sformat(time_str, sformat.magenta)

            if response.status >= 500:
                msg = sformat(msg, sformat.red)
            elif response.status >= 400:
                msg = sformat(msg, sformat.yellow)
            elif response.status == 304:
                msg = sformat(msg, sformat.dim)
            elif request.method == METH_POST:
                msg = sformat(msg, sformat.green)

        self.logger.info(time_str + ' ' + msg)