Code Monkey home page Code Monkey logo

winston-error's Introduction

winston-error

Build Status Dependency Status devDependency Status

Error helper for winston.

Add a decorator on winston.error() (by default, customizable) which, when an error is passed as first argument, also adds it in metadata and converts the call to a standard winston (message, metadata, ...). The full error object is not added, only standard fields .name, .message and .stack are copied (by default, customizable).

Install

npm install winston-error

Usage

var winston = require('winston');
var winstonError = require('winston-error');

var logger = new winston.Logger();
winstonError(logger);

logger.error(new Error('My error')); // will add message, stack and code in meta

Copied fields can be explicitly selected, with a default value :

winstonError(logger, {
  pickedFields: {
    name: undefined,
    message: undefined,
    stack: undefined,
    status: 500
  }
});

logger.error(new Error('My error')); // will copy name, message, stack and status in meta

Decorated levels can be explicitly selected :

winstonError(logger, {
  decoratedLevels: [
    'error',
    'warn'
  ]
});

logger.error(new Error('My error')); // will copy name, message and stack in meta
logger.warn(new Error('My error')); // will copy name, message and stack in meta

License

MIT

contributing

npm i
npm test

winston-error's People

Contributors

gregberge avatar icandivideby0 avatar

Stargazers

Dan Vitoriano avatar Alexander avatar qcom avatar Yves-Emmanuel Jutard avatar

Watchers

Ludo Werwinski avatar  avatar  avatar Damien Chaillou avatar Yves-Emmanuel Jutard avatar Stefen avatar Thierry Templier avatar  avatar  avatar Yannick Dominguez avatar Olivier Grange-Labat avatar  avatar James Cloos avatar Jonathan Jalouzot avatar Alexandre Hunault avatar Rubal Amador avatar Sacha Morard avatar Mohamed EL Mansouri avatar Justin Bourrousse avatar Nolan Rigo avatar José-Hugues Pommier avatar Marvin Lamart avatar  avatar Stéphane avatar  avatar kimb avatar Marius Baron avatar  avatar Mohamed Ettaki Talbi avatar Sourouche Bagherzadeh avatar RIAZ Bilawal avatar Lesly JOLLOIS avatar  avatar Paul B. avatar  avatar Maxime Loliée avatar Vanel Siyou avatar Vidal Philippe avatar Sébastien Quenet avatar Nada MESRATI avatar Jérôme Vermenot avatar  avatar Jeremy SFEZ avatar Aurelien avatar Nicolas Arnault avatar Michael Guerfi avatar Brixton avatar  avatar Jean Billaud avatar Claire avatar Théo Simier avatar Nicolas Viry avatar

winston-error's Issues

Error logging is not working with winston 3.2.1

The software could handle errors since npm update. It begun to throw an error instead logging it.

After a bit debugging this is the issue:

TypeError: Cannot read property 'apply' of undefined
at DerivedLogger.winstonCallRewriter (/media/milos/Windows/Users/milos/gitprojects/SunToken/notificator/node_modules/winston-error/index.js:49:18)
at DerivedLogger.wrapper [as error] (/media/milos/Windows/Users/milos/gitprojects/SunToken/notificator/node_modules/winston-error/node_modules/lodash/index.js:3592:19)

It occurs since winston version 3.2.1 (it works with winston 3.2.0).

The potential solution was to add this line in index.js

  var originalLogger = _.clone(logger); // not deep
  //originalLogger.__proto__ = logger.__proto__  //Line 12

On the first sight it seems to work, but it should be checked the logger internals coping and its consequences. Currently I don't have a time (and knowledge about lodash and winston internals), so I would use workaround:

Workaround:

  • set fixed version in package.json "winston": "3.2.0"

Ability to pass error as meta.

Hey, I found your extensions useful for my project, one thing I am missing is an ability to pass error in meta.

Example:

try {
 // ...
} catch (err) {
   logger.error('Additional comment to error', { error: err })
}

What do you think @Yvem ? I can make PR for that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.