Google Cloud Logging Transport
Implements the Google Cloud Logging library.
This transport sends logs to Google Cloud Logging (formerly known as Stackdriver Logging).
Installation
bash
npm install @loglayer/transport-google-cloud-logging @google-cloud/logging serialize-error
bash
yarn add @loglayer/transport-google-cloud-logging @google-cloud/logging serialize-error
bash
pnpm add @loglayer/transport-google-cloud-logging @google-cloud/logging serialize-error
Usage
INFO
This transport uses log.entry(metadata, data)
as described in the library documentation.
- The
metadata
portion is not the data fromwithMetadata()
orwithContext()
. See therootLevelData
option for this transport on how to modify this value. - The
data
portion is actually thejsonPayload
is what the transport uses for all LogLayer data. - The message data is stored in
jsonPayload.message
For more information, see Structured Logging, specifically LogEntry.
typescript
import { LogLayer } from "loglayer";
import { GoogleCloudLoggingTransport } from "@loglayer/transport-google-cloud-logging";
import { Logging } from '@google-cloud/logging';
import { serializeError } from "serialize-error";
// Create the logging client
const logging = new Logging({ projectId: "GOOGLE_CLOUD_PLATFORM_PROJECT_ID" });
const log = logging.log('my-log');
// Create LogLayer instance with the transport
const logger = new LogLayer({
errorSerializer: serializeError,
transport: new GoogleCloudLoggingTransport({
logger: log,
})
});
// The logs will include the default metadata
logger.info("Hello from Cloud Run!");
Configuration
rootLevelData
The root level data to include for all log entries. This is not the same as using withContext()
, which would be included as part of the jsonPayload
.
The rootLevelData
option accepts any valid Google Cloud LogEntry fields except for severity
, timestamp
, and jsonPayload
which are managed by the transport.
typescript
const logger = new LogLayer({
transport: new GoogleCloudLoggingTransport({
logger: log,
rootLevelData: {
resource: {
type: "cloud_run_revision",
labels: {
project_id: "my-project",
service_name: "my-service",
revision_name: "my-revision",
},
},
labels: {
environment: "production",
version: "1.0.0",
},
},
}),
});
Log Level Mapping
LogLayer log levels are mapped to Google Cloud Logging severity levels as follows:
LogLayer Level | Google Cloud Logging Severity |
---|---|
fatal | CRITICAL |
error | ERROR |
warn | WARNING |
info | INFO |
debug | DEBUG |
trace | DEBUG |