googleapis / googleapis/google-cloud-java

[java-logging] Impossible to create com.google.cloud.logging.LogEntry with both TextPayload and JsonPayload

Open
#11,915 0 comments 0 reactions 1 assignee Claimed by @cindy-peng View on GitHub
api: logging priority: p3
Dominant language
Java
Stars
2.1k
Forks
1.2k
Avg merge
1d 23h
Merged PRs (30d)
154

Description

My program perfectly send logs to Logs Explorer with Google's `com.google.cloud.logging` library. However, when I want to set both textPayload and jsonPayload, I can't.

If just JsonPayload is set, then I'm unable to see log's message on preview. It just shows the URL that my Cloud Function works.

However, in com.google.logging.v2.LogEntry model, I can set both textPayload and jsonPayload. In this way I cannot send logs to server because of the `com.google.cloud.logging.Logging` instance's `write` method does not accept this type of LogEntry

#### Steps to reproduce

1. Write a simple LogEntry build statement with JsonPayload or TextPayload (cannot do both, that's the issue)
2. Run `logging.write(Collections.singleton(logEntry));` and see it display textpayload's content for preview on Logs Explorer but if you set JsonPayload, it just dont.

#### Code example

```java
LogEntry logEntry =
LogEntry.newBuilder(logPayload.getPayload())
.setLogName(GOOGLE_CLOUD_LOG_NAME)
.setSeverity(severity)
.setTimestamp(logPayload.getTimestamp())
.build();
logging.write(Collections.singleton(logEntry));
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.