npm.io
0.32.0 • Published 1 week ago

@opentelemetry/winston-transport

Licence
Apache-2.0
Version
0.32.0
Deps
3
Size
48 kB
Vulns
0
Weekly
0
Stars
924

OpenTelemetry transport for winston

NPM Published Version Apache License

This module provides a Transport for winston module to send Winston logging to the OpenTelemetry Logging SDK.

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @opentelemetry/winston-transport

Usage

This package exports the Winston transport class that is used to send records to the OpenTelemetry Logs SDK. It can be used directly when configuring a Winston logger. If using @opentelemetry/instrumenation-winston package there is no need to instantiate the transport as the instrumentation will take care of that. For example:

const logsAPI = require('@opentelemetry/api-logs');
const {
    LoggerProvider,
    SimpleLogRecordProcessor,
    ConsoleLogRecordExporter,
} = require('@opentelemetry/sdk-logs');
const { OpenTelemetryTransportV3 } = require('@opentelemetry/winston-transport');
const winston = require('winston');


// To start a logger, you first need to initialize the Logger provider.
// And add a processor to export log record.
const loggerProvider = new LoggerProvider({
  processors: [
    new SimpleLogRecordProcessor({ exporter: new ConsoleLogRecordExporter() })
  ],
});
logsAPI.logs.setGlobalLoggerProvider(loggerProvider);

const logger = winston.createLogger({
  level: 'info',
  transports: [
    new winston.transports.Console(),
    new OpenTelemetryTransportV3()
  ]
});

Logs will be duplicated if @opentelemetry/winston-transport is added as a transport in winston and @opentelemetry/instrumentation-winston is configured with disableLogSending: false.

Error handling

Error instances assigned to the conventional error or err fields are emitted through the OpenTelemetry Logs API exception field. Instances assigned to other metadata fields, including errors nested in arrays or objects, are converted to structured attributes containing their name, message, stack, and other own properties. Circular references in serialized error metadata are represented as [Circular].

Supported versions

License

Apache 2.0 - See LICENSE for more information.

Keywords