Skip to content

Commit 79daedf

Browse files
committed
docs(logging): improve write log entry sample
1 parent 1721e7c commit 79daedf

2 files changed

Lines changed: 60 additions & 12 deletions

File tree

java-logging/samples/snippets/src/main/java/com/example/logging/WriteLogEntry.java

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@
2222
import com.google.cloud.logging.Logging;
2323
import com.google.cloud.logging.LoggingOptions;
2424
import com.google.cloud.logging.Payload.JsonPayload;
25+
import com.google.cloud.logging.Payload.StringPayload;
2526
import com.google.cloud.logging.Severity;
2627
import com.google.common.collect.ImmutableMap;
28+
import java.util.Arrays;
2729
import java.util.Collections;
30+
import java.util.List;
2831
import java.util.Map;
2932

3033
public class WriteLogEntry {
@@ -35,23 +38,44 @@ public static void main(String[] args) throws Exception {
3538

3639
// Instantiates a client
3740
try (Logging logging = LoggingOptions.getDefaultInstance().getService()) {
38-
Map<String, String> payload =
39-
ImmutableMap.of(
40-
"name", "King Arthur", "quest", "Find the Holy Grail", "favorite_color", "Blue");
41-
LogEntry entry =
42-
LogEntry.newBuilder(JsonPayload.of(payload))
43-
.setSeverity(Severity.INFO)
44-
.setLogName(logName)
45-
.setResource(MonitoredResource.newBuilder("global").build())
46-
.build();
47-
48-
// Writes the log entry asynchronously
49-
logging.write(Collections.singleton(entry));
41+
List<LogEntry> entries = createLogEntries(logName);
42+
43+
// Writes one text log entry.
44+
logging.write(Collections.singleton(entries.get(0)));
45+
46+
// Writes a batch of text and structured log entries.
47+
logging.write(entries);
5048

5149
// Optional - flush any pending log entries just before Logging is closed
5250
logging.flush();
5351
}
5452
System.out.printf("Wrote to %s\n", logName);
5553
}
54+
55+
static List<LogEntry> createLogEntries(String logName) {
56+
MonitoredResource resource = MonitoredResource.newBuilder("global").build();
57+
Map<String, String> labels = ImmutableMap.of("sample", "write-log-entry");
58+
59+
LogEntry textEntry =
60+
LogEntry.newBuilder(StringPayload.of("Text log entry written from Java."))
61+
.setSeverity(Severity.INFO)
62+
.setLogName(logName)
63+
.setResource(resource)
64+
.setLabels(labels)
65+
.build();
66+
67+
Map<String, Object> jsonPayload =
68+
ImmutableMap.of(
69+
"message", "Structured log entry written from Java.", "component", "sample");
70+
LogEntry structEntry =
71+
LogEntry.newBuilder(JsonPayload.of(jsonPayload))
72+
.setSeverity(Severity.WARNING)
73+
.setLogName(logName)
74+
.setResource(resource)
75+
.setLabels(labels)
76+
.build();
77+
78+
return Arrays.asList(textEntry, structEntry);
79+
}
5680
}
5781
// [END logging_write_log_entry]

java-logging/samples/snippets/src/test/java/com/example/logging/LoggingIT.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,14 @@
2424
import com.google.cloud.logging.LogEntry;
2525
import com.google.cloud.logging.Logging;
2626
import com.google.cloud.logging.LoggingOptions;
27+
import com.google.cloud.logging.Payload.JsonPayload;
2728
import com.google.cloud.logging.Payload.StringPayload;
29+
import com.google.cloud.logging.Severity;
2830
import com.google.cloud.logging.Synchronicity;
2931
import java.io.ByteArrayOutputStream;
3032
import java.io.PrintStream;
3133
import java.util.Collections;
34+
import java.util.List;
3235
import org.junit.After;
3336
import org.junit.AfterClass;
3437
import org.junit.Before;
@@ -152,6 +155,27 @@ public void testWriteLogHttpRequestSample() throws Exception {
152155

153156
@Test(timeout = 60000)
154157
public void testWriteLogEntrySample() throws Exception {
158+
List<LogEntry> entries = WriteLogEntry.createLogEntries(TEST_LOG);
159+
assertThat(entries).hasSize(2);
160+
161+
LogEntry textEntry = entries.get(0);
162+
assertThat(textEntry.getLogName()).isEqualTo(TEST_LOG);
163+
assertThat(textEntry.getResource().getType()).isEqualTo("global");
164+
assertThat(textEntry.getSeverity()).isEqualTo(Severity.INFO);
165+
assertThat(textEntry.getLabels()).containsEntry("sample", "write-log-entry");
166+
assertThat(textEntry.getPayload()).isInstanceOf(StringPayload.class);
167+
assertThat(((StringPayload) textEntry.getPayload()).getData())
168+
.isEqualTo("Text log entry written from Java.");
169+
170+
LogEntry structEntry = entries.get(1);
171+
assertThat(structEntry.getLogName()).isEqualTo(TEST_LOG);
172+
assertThat(structEntry.getResource().getType()).isEqualTo("global");
173+
assertThat(structEntry.getSeverity()).isEqualTo(Severity.WARNING);
174+
assertThat(structEntry.getLabels()).containsEntry("sample", "write-log-entry");
175+
assertThat(structEntry.getPayload()).isInstanceOf(JsonPayload.class);
176+
assertThat(((JsonPayload) structEntry.getPayload()).getData())
177+
.containsEntry("message", "Structured log entry written from Java.");
178+
155179
WriteLogEntry.main(new String[] {TEST_LOG});
156180
String got = bout.toString();
157181
assertThat(got).contains(String.format("Wrote to %s", TEST_LOG));

0 commit comments

Comments
 (0)