protected AppLogLine findLogLineContaining(String text, int retryMax) { LogQuery logQuery = new LogQuery() .includeAppLogs(true) .includeIncomplete(true) // Not specifying start time causes test to time out since it searches // all the logs. .startTimeMillis(System.currentTimeMillis() - (20 * 1000)); return findLogLine(text, logQuery, retryMax); }
public Iterable<RequestLogs> queryForLogs(long logRangeStartMs, long logRangeEndMs, LogsExportConfiguration exportConfig, LogsFieldExporterSet exporterSet) { LogService ls = LogServiceFactory.getLogService(); LogQuery lq = new LogQuery(); lq = lq.startTimeMillis(logRangeStartMs) .endTimeMillis(logRangeEndMs) .includeAppLogs(true); if (exportConfig.getLogLevel() != null) { lq = lq.minLogLevel(exportConfig.getLogLevel()); } List<Version> appVersions = exporterSet.applicationVersionsToExport(); if (appVersions != null && appVersions.size() > 0) { lq = lq.versions(appVersions); } Iterable<RequestLogs> logs = ls.fetch(lq); return logs; } }
@Test @InSequence(20) public void testRequestLogsAreSortedNewestFirst() throws EntityNotFoundException { LogQuery query = new LogQuery().startTimeMillis(System.currentTimeMillis() - 60000); Iterator<RequestLogs> iterator = findLogLine(query, 3); Long previousEndTimeUsec = null; while (iterator.hasNext()) { RequestLogs requestLogs = iterator.next(); long endTimeUsec = requestLogs.getEndTimeUsec(); if (previousEndTimeUsec != null) { assertTrue( "RequestLogs with endTimeUsec " + endTimeUsec + " was returned after RequestLogs with endTimeUsec " + previousEndTimeUsec, previousEndTimeUsec >= endTimeUsec); } previousEndTimeUsec = endTimeUsec; } }
public RequestLogs getCurrentRequestLogs() { LogQuery logQuery = new LogQuery() .includeAppLogs(true) .includeIncomplete(true) .startTimeMillis(System.currentTimeMillis() - 20000); for (RequestLogs requestLogs : LogServiceFactory.getLogService().fetch(logQuery)) { if (requestLogs.getRequestId().equals(getCurrentRequestId())) { return requestLogs; } } fail("Could not find RequestLogs for current request"); return null; // not sure, why the following code throws LogServiceException: An error occurred retrieving logs from storage. // LogQuery logQuery = new LogQuery() // .includeAppLogs(true) // .requestIds(Collections.singletonList(getCurrentRequestId())); // Iterable<RequestLogs> iterable = LogServiceFactory.getLogService().fetch(logQuery); // assertTrue("Could not find RequestLogs for current request", iterable.iterator().hasNext()); // return iterable.iterator().next(); } }
@Test @InSequence(20) public void testIncomplete() throws Exception { // GAE dev server doesn't handle this assumeEnvironment(Environment.APPSPOT, Environment.CAPEDWARF); String infoLogMsg = "info_incompleteRequest-" + System.currentTimeMillis(); log.info(infoLogMsg); flush(log); sync(5000); // Yes, even after a flush we need to wait for the logs to be available. assertLogQueryReturns(infoLogMsg, new LogQuery().includeAppLogs(true).includeIncomplete(true)); assertLogQueryReturns("info_createCompleteRequest1", new LogQuery().includeAppLogs(true).includeIncomplete(true)); assertLogQueryDoesNotReturn(infoLogMsg, new LogQuery().includeAppLogs(true) .includeIncomplete(false).startTimeMillis(System.currentTimeMillis() - 60000)); }
.offset(null) .majorVersionIds(Arrays.asList("1", "2", "3")) .startTimeMillis(System.currentTimeMillis() - 3000L) .endTimeMillis(System.currentTimeMillis() - 2000L), "testCombo", exceptions);
assertLogQueryExecutes(new LogQuery().majorVersionIds(Arrays.asList("1", "2", "3")), "testMajorVersionIds", exceptions); assertLogQueryExecutes(new LogQuery().startTimeMillis(System.currentTimeMillis()), "testStartTimeMillis", exceptions); assertLogQueryExecutes(new LogQuery().startTimeUsec(1000L * System.currentTimeMillis()), "testStartTimeUsec", exceptions); assertLogQueryExecutes(new LogQuery().endTimeMillis(System.currentTimeMillis()), "testEndTimeMillis", exceptions); .offset(null) .majorVersionIds(Arrays.asList("1", "2", "3")) .startTimeMillis(System.currentTimeMillis() - 3000L) .endTimeMillis(System.currentTimeMillis() - 2000L), "testCombo", exceptions);
LogQuery logQuery = new LogQuery() .batchSize((int) batchSize) .startTimeMillis(startMilliTime) .endTimeMillis(endMilliTime) .minLogLevel(LogService.LogLevel.WARN) logQuery = new LogQuery() .versions(versions) .startTimeMillis(startMilliTime);