# winston-transport-sentry-node

> @sentry/node transport for the winston v3 logger

Latest version **3.0.0** (published 2024-08-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install winston-transport-sentry-node
pnpm add winston-transport-sentry-node
yarn add winston-transport-sentry-node
bun add winston-transport-sentry-node
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2024-08-07 |
| First published | 2019-08-07 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >= 8.10.0 |
| Dependencies | 4 |
| Unpacked size | 25.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 62 |
| Author | Andrew Avdeev |
| Maintainers | andrewww |
| Keywords | logger, loggly, logging, node, tools, sentry, transport, winston, winston3 |

## Links

- npm: https://www.npmjs.com/package/winston-transport-sentry-node
- Repository: https://github.com/aandrewww/winston-transport-sentry-node
- Homepage: https://github.com/aandrewww/winston-transport-sentry-node#readme
- Issues: https://github.com/aandrewww/winston-transport-sentry-node/issues
- npm.io page: https://npm.io/package/winston-transport-sentry-node

## Dependencies (4)

- [tslib](https://npm.io/package/tslib.md) ^2.3.1
- [winston](https://npm.io/package/winston.md) ^3.3.3
- [triple-beam](https://npm.io/package/triple-beam.md) ^1.3.0
- [winston-transport](https://npm.io/package/winston-transport.md) ^4.4.0

## Alternatives

- [cli-color](https://npm.io/package/cli-color.md) — 3.4M weekly downloads
- [log](https://npm.io/package/log.md) — 1.3M weekly downloads
- [logstash-client](https://npm.io/package/logstash-client.md) — 4.5K weekly downloads
- [@nocobase/plugin-logger](https://npm.io/package/@nocobase/plugin-logger.md) — 2.0K weekly downloads
- [child-process-debug](https://npm.io/package/child-process-debug.md) — 695 weekly downloads

## Recent versions

- 3.0.0 (latest) — 2024-08-07
- 2.8.0 — 2024-06-03
- 2.7.1 — 2024-04-07
- 2.7.0 — 2022-11-07
- 2.6.0 — 2022-08-04
- 2.5.1 — 2022-07-26
- 2.5.0 — 2022-07-06
- 2.4.0 — 2022-06-20
- 2.3.0 — 2022-01-19
- 2.2.0 — 2022-01-19
- 2.1.0 — 2022-01-03
- 2.0.0 — 2021-09-26
- 1.1.0 — 2021-09-26
- 1.0.2 — 2021-02-24
- 1.0.1 — 2021-02-09
- … 9 more at https://npm.io/package/winston-transport-sentry-node/versions

## README

# winston-transport-sentry-node
[![CircleCI](https://circleci.com/gh/aandrewww/winston-transport-sentry-node.svg?style=svg)](https://circleci.com/gh/aandrewww/winston-transport-sentry-node)
[![node](https://img.shields.io/badge/node-6.4.0+-brightgreen.svg)][node-url]
[![winston](https://img.shields.io/badge/winston-3.x+-brightgreen.svg)][winston-url]
[![license](https://img.shields.io/github/license/aandrewww/winston-transport-sentry-node.svg)][license-url]

[@Sentry/node](https://github.com/getsentry/sentry-javascript/tree/master/packages/node) transport for the [winston](https://github.com/winstonjs/winston) v3 logger.

## Index

* [Install](#install)
* [Usage](#usage)
* [Options](#options-options)
  - [Transport related options](#transport-related-options)
  - [Sentry common options](#sentry-common-options)
  - [Info object](#format-info-object)
  - [Log Level Mapping](#log-level-mapping)
* [License](#license)

## Install

```bash
npm install --save winston winston-transport-sentry-node
```


## Usage

You can configure `winston-transport-sentry-node` in two different ways.

With `winston.createLogger`:

```js
const winston = require('winston');
const Sentry = require('winston-transport-sentry-node').default;

const options = {
  sentry: {
    dsn: 'https://******@sentry.io/12345',
  },
  level: 'info'
};

const logger = winston.createLogger({
  transports: [
    new Sentry(options)
  ]
});
```

Or with winston's `add` method:

```js
const winston = require('winston');
const Sentry = require('winston-transport-sentry-node').default;

const logger = winston.createLogger();

logger.add(new Sentry(options));
```

See [Options](#options-options) below for custom configuration.

## Options (`options`)

### Transport related options

* `sentry` (Object) - a Sentry configuration object (see [Sentry Common Options](#sentry-common-options))
* `silent` (Boolean) - suppress logging (defaults to `false`)
* `level` (String) - transport's level of messages to log (defaults to `info`)
* `format` (Object) - custom log format (see [Winston Formats](https://github.com/winstonjs/winston#formats))
* `levelsMap` (Object) - optional custom mapping between Winston's log levels and Sentry's log levels ([default](#log-level-mapping))

### Sentry common options

* `dsn` (String) - your Sentry DSN or Data Source Name (defaults to `process.env.SENTRY_DSN`)
* `environment` (String) - (defaults to `process.env.SENTRY_ENVIRONMENT || process.env.NODE_ENV || 'production'`)
* `serverName` (String) - transport's name (defaults to `winston-transport-sentry-node`)
* `debug` (Boolean) - turns debug mode on or off (default to `process.env.SENTRY_DEBUG || false`)
* `sampleRate` (Number) - sample rate as a percentage of events to be sent in the range of 0.0 to 1.0 (default to `1.0`)
* `maxBreadcrumbs` (Number) - total amount of breadcrumbs that should be captured (default to `100`)
* ... [Other options](https://docs.sentry.io/error-reporting/configuration/?platform=javascript)

### Info object ([See more](https://github.com/winstonjs/winston#streams-objectmode-and-info-objects))

If `info.tags` is an object, it will be sent as [Sentry Tags](https://docs.sentry.io/enriching-error-data/context/?platform=javascript#tagging-events).

```js
logger.error("some error", { tags: { tag1: "yo", tag2: "123" } });
```

If `info.user` is an object, it will be sent as [Sentry User](https://docs.sentry.io/platforms/javascript/#capturing-the-user).

```js
logger.error("some error", { user: { username: "somebody", id: "123" } });
```

Additional properties of `info` are sent as [Sentry Extra Context](https://docs.sentry.io/enriching-error-data/context/?platform=javascript#extra-context).

```js
logger.error("some error", { whatever: "is sent as extra" });
```

Tip! If you already have logging in place and want to use Sentry tags but don’t want to update all places where you log something, use a `format` function.

```js
const sentryFormat = format(info => {
  const {path, label, ...extra} = info;
  return {
    ...extra,
    tags: {
      path: path || '',
      request_id: label
    }
  }
});

new SentryTransport({
  format: sentryFormat()
  // ...
});
```

### Log Level Mapping

Winston logging levels are mapped by default to Sentry's acceptable levels.

```js
{
  silly: 'debug',
  verbose: 'debug',
  info: 'info',
  debug: 'debug',
  warn: 'warning',
  error: 'error'
}
```

See available [Sentry's levels](https://getsentry.github.io/sentry-javascript/enums/types.severity-1.html).
Matching is done with [`Sentry.Severity.fromString()`](https://getsentry.github.io/sentry-javascript/enums/types.severity-1.html#fromstring) method and will defaults to [`log`](https://getsentry.github.io/sentry-javascript/enums/types.severity-1.html#log)

## License

[MIT License][license-url]

[license-url]: LICENSE
[node-url]: https://nodejs.org
[winston-url]: https://github.com/winstonjs/winston

---
_Source: https://npm.io/package/winston-transport-sentry-node · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
