Stackdriver 로그를 처리하기 위해 데이터 흐름 파이프 라인을 만들고 데이터를 Pub/Sub에서 읽고 결과를 BigQuery에 기록합니다. Pub/Sub에서 읽을 때 LogEntry 개체의 JSON 문자열을 얻었지만 실제로 관심이있는 내용은 사용자 로그 메시지가 포함 된 protoPayload.line
레코드입니다. 내가 LogEntry
JSON 개체를 구문 분석 할 필요가 사람들을 얻을 내가 Google example 두 살 그것을 수행하는 방법을 발견하려면Parse Stackdriver 데이터 흐름 파이프 라인의 LogEntry JSON
import com.google.api.client.json.JsonParser;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.logging.model.LogEntry;
try {
JsonParser parser = new JacksonFactory().createJsonParser(entry);
LogEntry logEntry = parser.parse(LogEntry.class);
logString = logEntry.getTextPayload();
}
catch (IOException e) {
LOG.error("IOException parsing entry: " + e.getMessage());
}
catch(NullPointerException e) {
LOG.error("NullPointerException parsing entry: " + e.getMessage());
}
을 불행하게도 이것은 logEntry.getTextPayload()
반환 null
, 나를 위해 작동하지 않습니다. 심지어는 Google Cloud 문서에서 com.google.api.services.logging
라이브러리가 언급되지 않았기 때문에 현재 로깅 라이브러리가 google-cloud-logging 인 것으로 보입니다.
그렇다면 누구든지 LogEntry
개체를 구문 분석하는 가장 적절하거나 간단한 방법을 제안 할 수 있습니까?