Struktura logów Cloud Logging

Cloud Logging reprezentuje dzienniki za pomocą typu danych LogEntry, który definiuje wspólne dane dla wszystkich wpisów w dzienniku, a także konkretne dane, które mogą zawierać usługi Google Cloud. Więcej informacji znajdziesz w artykule LogEntry.

Długie logi są dzielone na wiele wpisów. Więcej informacji znajdziesz w sekcji Praca z podzielonymi logami w tej dokumentacji.

Przykładowe wpisy w logu

Poniższy przykład pokazuje LogEntry dla dziennika UpdateVehicle. Żądanie RPC i odpowiedź znajdują się w polu jsonPayload.

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "request": {
          "header": {4},
          "updateMask": "deviceSettings",
          "vehicleId": "uniqueVehicleId",
          "vehicle": {2}
        },
        "response": {
          "name": "providers/example-project-id/vehicles/uniqueVehicleId",
          "availableCapacity": 2,
          "state": "VEHICLE_STATE_OFFLINE",
          "maximumCapacity": 2,
          "vehicleType": {1},
          "supportedTrips": {1}
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog"
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "labels": {2},
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

Jeśli zwrócony zostanie błąd RPC, pole responseVehicle zostanie wyczyszczone, a pole errorResponse zostanie ustawione i wypełnione w ramach jsonPayload.

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "errorResponse": {
          "httpStatusCode": 404,
          "code": "NOT_FOUND",
          "message": "No entity with id invalidVehicleId exists"
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog",
        "request": {
          "vehicle": {3},
          "updateMask": "deviceSettings",
          "vehicleId": "fakeVehicleId",
          "header": {4}
        }
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "severity": "ERROR",
      "labels": {2}
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

Więcej informacji o języku zapytań dotyczących logów znajdziesz w artykule Język zapytań dotyczących logów.

Więcej informacji o tym, jak używać logów do tworzenia danych, znajdziesz w artykule Omówienie wskaźników opartych na logach.

Co dalej?

Obsługa długich wpisów w dzienniku za pomocą podzielonych dzienników