particle-iot/winston-papertrail

Name: winston-papertrail

Owner: Particle

Description: Papertrail transport for Winston

Created: 2015-07-22 23:38:21.0

Updated: 2016-03-15 19:20:40.0

Pushed: 2018-01-03 18:50:48.0

Homepage:

Size: 71

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

winston-papertrail Build Status NPM version

A Papertrail transport for winston.

Installation
Installing npm (node package manager)
curl http://npmjs.org/install.sh | sh
Installing winston-papertrail
npm install winston
npm install winston-papertrail

There are a few required options for logging to Papertrail:

Usage
r winston = require('winston');


 Requiring `winston-papertrail` will expose
 `winston.transports.Papertrail`

quire('winston-papertrail').Papertrail;

r logger = new winston.Logger({
transports: [
    new winston.transports.Papertrail({
        host: 'logs.papertrailapp.com',
        port: 12345
    })
]
;

gger.info('this is my message');

There are a number of optional settings:

There are also a number of settings for connection failure and retry behavior

Advanced Usage

For more some advanced logging, you can take advantage of custom formatting for Papertrail:

r winston = require('winston');


 Requiring `winston-papertrail` will expose
 `winston.transports.Papertrail`

quire('winston-papertrail').Papertrail;

r logger = new winston.Logger({
transports: [
    new winston.transports.Papertrail({
        host: 'logs.papertrailapp.com',
        port: 12345,
        logFormat: function(level, message) {
            return '<<<' + level + '>>> ' + message;
        }
    })
]
;

gger.info('this is my message');
Transport Events

The Papertrail transport is also capable of emitting events for error and connect so you can log to other transports:

winston = require('winston'),
Papertrail = require('winston-papertrail').Papertrail;

logger,
consoleLogger = new winston.transports.Console({
    level: 'debug',
    timestamp: function() {
        return new Date().toString();
    },
    colorize: true
}),
ptTransport = new Papertrail({
    host: 'logs.papertrailapp.com',
    port: 12345,
    hostname: 'web-01',
    level: 'debug',
    logFormat: function(level, message) {
        return '[' + level + '] ' + message;
    }
});

ansport.on('error', function(err) {
logger && logger.error(err);


ansport.on('connect', function(message) {
logger && logger.info(message);


logger = new winston.Logger({
levels: {
    debug: 0,
    info: 1,
    warn: 2,
    error: 3
},
transports: [
    ptTransport,
    consoleLogger
]


er.info('this is my message ' + new Date().getTime());
Colorization

The winston-papertrail transport supports colorization with winston. Currently, the ANSI codes used for escape sequences are part of the search index, so please be advised when using colorization.

winston = require('winston'),
Papertrail = require('winston-papertrail').Papertrail;

logger = new winston.Logger({
transports: [
    new Papertrail({
        host: 'logs.papertrailapp.com',
        port: 12345, // your port here
        colorize: true
    })
]


er.info('Hello from colorized winston', logger);
Closing the transport

As of v0.1.3 winston-papertrail transport supports closing the transport (and the underlying TLS connection) via the Winston.Transport close method. Thus, you can enable scenarios where your transport automatically closes when you close the winston logger.

winston = require('winston'),
Papertrail = require('winston-papertrail').Papertrail;

 new Papertrail({
host: 'logs.papertrailapp.com',
port: 12345 // your port here


logger = new winston.Logger({
transports: [ pt ]


n('connect', function () {
logger.info('logging before I close');
logger.close(); // this closes the underlying connection in the Papertrail transport

Author: Ken Perkins

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.