use of com.google.cloud.logging.LogEntry in project google-cloud-java by GoogleCloudPlatform.
the class LoggingSnippets method listLogEntriesAsync.
/**
* Example of asynchronously listing log entries for a specific log.
*/
// [TARGET listLogEntriesAsync(EntryListOption...)]
// [VARIABLE "logName=projects/my_project_id/logs/my_log_name"]
public Page<LogEntry> listLogEntriesAsync(String filter) throws ExecutionException, InterruptedException {
// [START listLogEntriesAsync]
Future<AsyncPage<LogEntry>> future = logging.listLogEntriesAsync(EntryListOption.filter(filter));
// ...
AsyncPage<LogEntry> entries = future.get();
for (LogEntry entry : entries.iterateAll()) {
// do something with the entry
}
// [END listLogEntriesAsync]
return entries;
}
use of com.google.cloud.logging.LogEntry in project google-cloud-java by GoogleCloudPlatform.
the class LoggingAppender method append.
@Override
protected void append(ILoggingEvent e) {
LogEntry logEntry = logEntryFor(e);
getLogging().write(Collections.singleton(logEntry), defaultWriteOptions);
}
use of com.google.cloud.logging.LogEntry in project google-cloud-java by GoogleCloudPlatform.
the class LoggingAppender method logEntryFor.
private LogEntry logEntryFor(ILoggingEvent e) {
String payload = e.getFormattedMessage();
Level level = e.getLevel();
LogEntry.Builder builder = LogEntry.newBuilder(Payload.StringPayload.of(payload)).setTimestamp(e.getTimeStamp()).setSeverity(severityFor(level));
builder.addLabel(LEVEL_NAME_KEY, level.toString()).addLabel(LEVEL_VALUE_KEY, String.valueOf(level.toInt()));
if (loggingEnhancers != null) {
for (LoggingEnhancer enhancer : loggingEnhancers) {
enhancer.enhanceLogEntry(builder);
}
}
return builder.build();
}
use of com.google.cloud.logging.LogEntry in project jetty-runtime by GoogleCloudPlatform.
the class LoggingIntegrationTest method testLogging.
@Test
@RemoteOnly
public void testLogging() throws Exception {
// Create unique ID to relate request with log entries
String id = Long.toHexString(System.nanoTime());
// Hit the DumpServlet that will log the request path
URI target = getUri().resolve("/dump/info/" + id);
HttpURLConnection http = HttpUrlUtil.openTo(target);
assertThat(http.getResponseCode(), is(200));
String responseBody = HttpUrlUtil.getResponseBody(http);
List<String> lines = new BufferedReader(new StringReader(responseBody)).lines().collect(Collectors.toList());
assertThat(lines.stream().filter(s -> s.startsWith("requestURI=")).findFirst().get(), containsString(id));
String traceId = lines.stream().filter(s -> s.startsWith("X-Cloud-Trace-Context: ")).findFirst().get().split("[ /]")[1];
assertThat(traceId, Matchers.notNullValue());
LoggingOptions options = LoggingOptions.getDefaultInstance();
String filter = "resource.type=gae_app AND resource.labels.module_id=smoke" + " AND textPayload:" + id;
int expected = 2;
try (Logging logging = options.getService()) {
Page<LogEntry> entries = logging.listLogEntries(EntryListOption.filter(filter));
for (LogEntry entry : entries.iterateAll()) {
if (entry.getSeverity() == Severity.INFO) {
assertThat(entry.getLogName(), is("gae_app.log"));
assertThat(entry.getResource().getType(), is("gae_app"));
assertThat(entry.getResource().getLabels().get("module_id"), is("smoke"));
assertThat(entry.getResource().getLabels().get("zone"), Matchers.notNullValue());
assertThat(entry.getLabels().get("appengine.googleapis.com/trace_id"), is(traceId));
assertThat(entry.getLabels().get("appengine.googleapis.com/instance_name"), Matchers.notNullValue());
if (entry.getPayload().toString().contains("JUL.info:/dump/info/")) {
expected--;
assertThat(entry.getPayload().toString(), Matchers.containsString(id));
}
if (entry.getPayload().toString().contains("ServletContext.log:/dump/info")) {
expected--;
assertThat(entry.getPayload().toString(), Matchers.containsString(id));
}
}
}
assertThat(expected, is(0));
}
}
Aggregations