opentelemetry-js/experimental/packages/sdk-logs
OpenTelemetry Bot 2d3760898c
chore: prepare next release (#5921)
2025-09-10 09:12:38 +00:00
..
src chore(sdk-logs): refactored imports (#5801) 2025-07-23 15:32:40 +00:00
test feat(sdk-logs)!: Removed deprecated `LoggerProvider#addLogRecordProcessor()` (#5764) 2025-06-30 07:41:53 +00:00
.eslintignore Logs SDK (#3549) 2023-04-13 08:41:19 -04:00
.eslintrc.js chore(deps): update dependency eslint to v8.43.0 (#3929) 2023-07-06 15:14:56 +02:00
.npmignore Logs SDK (#3549) 2023-04-13 08:41:19 -04:00
LICENSE Logs SDK (#3549) 2023-04-13 08:41:19 -04:00
README.md feat(sdk-logs)!: Removed deprecated `LoggerProvider#addLogRecordProcessor()` (#5764) 2025-06-30 07:41:53 +00:00
karma.conf.js feat(sdk-logs)!: do not read environment variables from window (#5472) 2025-02-17 09:57:22 +00:00
package.json chore: prepare next release (#5921) 2025-09-10 09:12:38 +00:00
tsconfig.esm.json Logs SDK (#3549) 2023-04-13 08:41:19 -04:00
tsconfig.esnext.json Logs SDK (#3549) 2023-04-13 08:41:19 -04:00
tsconfig.json Logs SDK (#3549) 2023-04-13 08:41:19 -04:00

README.md

OpenTelemetry Logs SDK

NPM Published Version Apache License

Note: This is an experimental package under active development. New releases may include breaking changes.

OpenTelemetry logs module contains the foundation for all logs SDKs of opentelemetry-js.

Used standalone, this module provides methods for manual instrumentation of code, offering full control over recording logs for client-side JavaScript (browser) and Node.js.

It does not provide automated instrumentation of known libraries or host environment logs out-of-the-box.

Installation

npm install --save @opentelemetry/api-logs
npm install --save @opentelemetry/sdk-logs

Usage

The basic setup of the SDK can be seen as followings:

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

// 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(new ConsoleLogRecordExporter())]
});

//  To create a log record, you first need to get a Logger instance
const logger = loggerProvider.getLogger('default');

// You can also use global singleton
logsAPI.logs.setGlobalLoggerProvider(loggerProvider);
const logger = logsAPI.logs.getLogger('default');

// emit a log record
logger.emit({
  severityNumber: logsAPI.SeverityNumber.INFO,
  severityText: 'INFO',
  body: 'this is a log record body',
  attributes: { 'log.type': 'LogRecord' },
});

Config

Logs configuration is a merge of both the user supplied configuration and the default configuration as specified in config.ts

Example

See examples/logs

License

Apache 2.0 - See LICENSE for more information.