@loglayer/transport-google-cloud-logging
v1.0.0
Published
Google Cloud Logging (Stackdriver) transport for loglayer.
Downloads
57
Maintainers
Readme
Google Cloud Logging Transport for LogLayer
Implements the Google Cloud Logging library for use with LogLayer.
This transport sends logs to Google Cloud Logging (formerly known as Stackdriver Logging).
Installation
npm install @loglayer/transport-google-cloud-logging @google-cloud/logging serialize-error
Notes
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.
Usage
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 Options
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.
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
|
Documentation
For more details, visit https://loglayer.dev/transports/google-cloud-logging