# winston-sentry

> Sentry transport for the winston logger.

Latest version **0.2.1** (published 2017-05-10) · MIT license · 0 weekly downloads

## Install

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

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.1 |
| Published | 2017-05-10 |
| First published | 2012-07-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 81 |
| Author | Cristiano Valente |
| Maintainers | guzru, shaharke |
| Keywords | node, sentry, javascript, logger, winston |

## Links

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

## Dependencies (2)

- [raven](https://npm.io/package/raven.md) ^1.1.4
- [lodash](https://npm.io/package/lodash.md) ^4.17.4

## 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

- 0.2.1 (latest) — 2017-05-10
- 0.2.0 — 2017-05-09
- 0.1.5 — 2016-10-02
- 0.1.4 — 2016-06-24
- 0.1.3 — 2016-06-23
- 0.1.2 — 2016-06-22
- 0.1.1 — 2015-09-17
- 0.1.0 — 2015-08-25
- 0.0.7 — 2015-03-05
- 0.0.6 — 2014-06-03
- 0.0.5 — 2013-11-05
- 0.0.4 — 2012-09-26
- 0.0.3 — 2012-07-13
- 0.0.2 — 2012-07-09
- 0.0.1 — 2012-07-09

## README

winston-sentry
==============

Sentry transport for winston logger for node js
-----------------------------------------------

Follow this sample configuration to use:

```javascript
var winston = require('winston'),
    Mail = require('winston-mail').Mail,
    Sentry = require('winston-sentry');

var logger = new winston.Logger({
    transports: [
        new winston.transports.Console({level: 'silly'}),
        new Sentry({
            level: 'warn',
            dsn: "{{ YOUR SENTRY DSN }}",
            tags: { key: 'value' },
            extra: { key: 'value' }
        })
    ],
});
```

If you want to use patchGlobal to catch all uncaught errors, simply pass it as option like this:

```javascript
new Sentry({
    patchGlobal: true
});
```

Winston logging levels are mapped to the default sentry levels like this:

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

You can customize how log levels are mapped using the `levelsMap` option:

```javascript
new Sentry({
    levelsMap: {
        verbose: 'info'
    }
});
```

Changelog
---------

**0.2.1**
* Changelog updated. No code changes.

**0.2.0**
* Upgrade Raven client to version 1.1.x

**0.1.5**
* Added license file. No code changes.

**0.1.4**
* Bug fix: Level in log function should not fallback to the level filtering configuration

**0.1.3**
* Fixes #30: Transport should not ignore configured log level

**0.1.2**
* Upgrade Raven client to version 0.11.0
* Refactoring global tags support to better work with the new client
* Refactoring default options 

**0.1.1**
* Added support for global tags that will be added to every message sent to sentry

**0.1.0**
* Upgrade Raven client to version 0.8.1

**0.0.6**

* Error stack traces will be sent to sentry. See [#3](https://github.com/guzru/winston-sentry/issues/3) for more details.
* Upgrade raven to latest version (0.6.3)
* Raven client can be passed to the transport from the outside

**0.0.5**

 * Winston metadata will be populated into the "Additional Data" section in Sentry.
 * If metadata contains a `tags` property, any key/value pairs within that property will be populated as Sentry tags.
   *It will be removed from the "Additional Data" section to avoid data duplication.* This will allow Winston metadata
   to be filterable within the Sentry UI.

```javascript

logger = new winston.Logger(...);
logger.log("info", "my log message", {
      userInformation: {
         os: "linux",
         browser: "chrome",
         userAgent: "<user agent string>"
      }
      tags: {
         productVersion: "1.2"
      }
   }
});

// In Sentry, the "Additional Data" section would show:
// - userInformation
//      - os: linux
//      - browser: chrome
//      - userAgent: <user agent string>
//
// The tags would show:
// - level: info
// - logger: [logger property from transport constructor - defaults to "root"]
// - server_name: [machine name]
// - productVersion: 1.2
```

**0.0.4**

 * Added support for capturing "Additional Data".

**0.0.3**

```javascript
logger = new winston.Logger(...);
logger.sentry_client.captureQuery("SELECT * FROM users;");
```

 * when logging as `error` level, it will implicitly call raven's `captureError` which will also capture the stack trace.
 * the `winston.Logger` object exposes the sentry client as `sentry_client`. Usage is simple:


** TODO:

 * capture sentry identifiers?

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