コード例 #1
0
 def testQuickLogger_LogSizeAndNumberAtSizeLimit(self):
     logger = quick_logger.QuickLogger('a_namespace', 'a_log_name')
     for i in xrange(quick_logger._MAX_NUM_RECORD):
         logger.Log(str(i % 2) * quick_logger._MAX_MSG_SIZE)
     logger.Save()
     logs = quick_logger.Get('a_namespace', 'a_log_name')
     self.assertEqual(len(logs), quick_logger._MAX_NUM_RECORD)
コード例 #2
0
 def testPost_LogAdded(self):
     self.testapp.post(
         '/bad_bisect?', {
             'try_job_id': '1234',
             'xsrf_token': xsrf.GenerateToken(users.get_current_user()),
         })
     logs = quick_logger.Get('bad_bisect', 'report')
     self.assertEqual(1, len(logs))
コード例 #3
0
 def testQuickLogger_MultipleLogs_UsesCorrectOrder(self):
     logger = quick_logger.QuickLogger('a_namespace', 'a_log_name')
     for i in xrange(quick_logger._MAX_NUM_RECORD + 10):
         logger.Log(i)
     logger.Save()
     logs = quick_logger.Get('a_namespace', 'a_log_name')
     self.assertEqual(len(logs), quick_logger._MAX_NUM_RECORD)
     # First record is the last log added.
     self.assertEqual(logs[0].message,
                      str(quick_logger._MAX_NUM_RECORD + 9))
コード例 #4
0
 def testQuickLogger_SaveAndGetNewLogEntry(self):
     template = '{message}{extra}'
     formatter = quick_logger.Formatter(template, extra='!')
     logger = quick_logger.QuickLogger('a_namespace', 'a_log_name',
                                       formatter)
     logger.Log('Hello world')
     logger.Save()
     logs = quick_logger.Get('a_namespace', 'a_log_name')
     self.assertEqual(len(logs), 1)
     self.assertEqual(logs[0].message, 'Hello world!')
コード例 #5
0
 def testQuickLogger(self):
   """Tests basic logging."""
   template = '{message}{extra}'
   formatter = quick_logger.Formatter(template, extra='!')
   logger = quick_logger.QuickLogger('a_namespace', 'a_log_name', formatter)
   logger.Log('Hello %s', 'world')
   logger.Save()
   logs = quick_logger.Get('a_namespace', 'a_log_name')
   self.assertEqual(len(logs), 1)
   self.assertEqual(logs[0].message, 'Hello world!')
コード例 #6
0
    def post(self):
        """Retrieves logs.

    Request parameters:
      log_namespace: Namespace of log to retrieve.
      log_name: Name of log to retrieve.
      log_filter: Regex string to filter logs.
      log_size: Number of logs to get.
      after_timestamp: Get the logs after this timestamp.

    Outputs:
      JSON which contains a list of quick_logger.Log.
    """
        log_namespace = self.request.get('namespace')
        log_name = self.request.get('name')
        log_filter = self.request.get('filter')
        log_size = self.request.get('size')
        after_timestamp = self.request.get('after_timestamp')

        logs = quick_logger.Get(log_namespace, log_name)
        if logs is None:
            logging.warning('Log name %s/%s does not exist.', log_namespace,
                            log_name)
            self.response.out.write('[]')
            return

        if log_filter:
            logs = [l for l in logs if re.match(log_filter, l.message)]
        if after_timestamp:
            after_timestamp = float(after_timestamp)
            logs = [
                l for l in logs
                if getattr(l, 'timestamp', l.index) > after_timestamp
            ]
        if log_size:
            logs = logs[0:int(log_size)]

        serializable_logs = []
        for log in logs:
            serializable_logs.append({
                'id':
                getattr(log, 'id', log.index),
                'timestamp':
                getattr(log, 'timestamp', log.index),
                'message':
                log.message
            })
        self.response.out.write(json.dumps(serializable_logs))
コード例 #7
0
    def testQuickLogger_LoggingWithId_UpdatesExistingLog(self):
        logger = quick_logger.QuickLogger('a_namespace', 'a_log_name')
        first_id = logger.Log('First message.')
        logger.Log('Second message.')
        logger.Log('Third message.')
        logger.Save()

        logger = quick_logger.QuickLogger('a_namespace', 'a_log_name')
        logger.Log('Updated first message.', first_id)
        logger.Save()

        logs = quick_logger.Get('a_namespace', 'a_log_name')
        self.assertEqual(3, len(logs))
        self.assertEqual('Updated first message.', logs[0].message)
        self.assertEqual('Third message.', logs[1].message)
        self.assertEqual('Second message.', logs[2].message)