docs: def log_request(self, handler):
          """
          Override base method to log requests to JSON UDP collector and emit
          a metric.
          """
          packet = {'method': handler.request.method,
                    'uri': handler.request.uri,
                    'remote_ip': handler.request.remote_ip,
                    'status': handler.get_status(),
                    'request_time_ms': handler.request.request_time() * 1000.0,
                    'service_id': self.service_id,
                    'request_id': handler.request.headers.get(REQUEST_ID_HEADER,
                                                              'undefined')
                    }
  
          # handler can optionally define additional data to log
          if hasattr(handler, 'logvalues'):
              for key, value in handler.logvalues.iteritems():
                  packet[key] = value
  
          servicelog.log(packet)
  
          metric = "requests." + str(handler.get_status())
          metrics.timing(metric, handler.request.request_time() * 1000.0)
  
          super(LoggingApplication, self).log_request(handler)