Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
winston-papertrail-enhanced
Advanced tools
A Papertrail transport for winston with customMessage
A Papertrail transport for winston.
$ curl http://npmjs.org/install.sh | sh
$ npm install winston
$ npm install winston-papertrail
There are a few required options for logging to Papertrail:
var winston = require('winston');
//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;
var logger = new winston.Logger({
transports: [
new winston.transports.Papertrail({
host: 'logs.papertrailapp.com',
port: 12345
})
]
});
logger.info('this is my message');
There are a number of optional settings:
disableTls
- set to true
to disable TLS on your transport. Defaults to false
level
- The log level to use for this transport, defaults to info
hostname
- The hostname for your transport, defaults to os.hostname()
program
- The program for your transport, defaults to default
facility
- The syslog facility for this transport, defaults to daemon
logFormat
- A function to format your log message before sending, see belowmessageFormat
- A function to format entire message before sending, see belowcolorize
- Enable colors in Papertrail, defaults to false
inlineMeta
- Inline multi-line messages, defaults to false
handleExceptions
- Tell this Transport to handle exceptions, defaults to false
There are also a number of settings for connection failure and retry behavior
attemptsBeforeDecay
- How many retries should be attempted before backing off, defaults to 5
maximumAttempts
- How many retries before disabling buffering, defaults to 25
connectionDelay
- How long between backoff in milliseconds, defaults to 1000
maxDelayBetweenReconnection
- The maximum backoff in milliseconds, defaults to 60000
maxBufferSize
- The maximum size of the retry buffer, in bytes, defaults to 1048576
For more some advanced logging, you can take advantage of custom formatting for Papertrail:
var winston = require('winston');
//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;
var logger = new winston.Logger({
transports: [
new winston.transports.Papertrail({
host: 'logs.papertrailapp.com',
port: 12345,
logFormat: function(level, message) {
return '<<<' + level + '>>> ' + message;
}
})
]
});
logger.info('this is my message');
Note that internally, winston-papertrial
splits a multiple line message into multiple log entries (one per line). logFormat
will be applied after the split. If you want to not split the message by line or have access to the meta data, see messageFormat
below.
var winston = require('winston');
//
// Requiring `winston-papertrail` will expose
// `winston.transports.Papertrail`
//
require('winston-papertrail').Papertrail;
var logger = new winston.Logger({
transports: [
new winston.transports.Papertrail({
host: 'logs.papertrailapp.com',
port: 12345,
messageFormat: function(level, message, meta) {
return 'message: ' + message + ', meta: ' + meta;
}
})
]
});
logger.info('this is my message');
The Papertrail transport is also capable of emitting events for error
and connect
so you can log to other transports:
var winston = require('winston'),
Papertrail = require('winston-papertrail').Papertrail;
var 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;
}
});
ptTransport.on('error', function(err) {
logger && logger.error(err);
});
ptTransport.on('connect', function(message) {
logger && logger.info(message);
});
var logger = new winston.Logger({
levels: {
debug: 0,
info: 1,
warn: 2,
error: 3
},
transports: [
ptTransport,
consoleLogger
]
});
logger.info('this is my message ' + new Date().getTime());
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.
var winston = require('winston'),
Papertrail = require('winston-papertrail').Papertrail;
var logger = new winston.Logger({
transports: [
new Papertrail({
host: 'logs.papertrailapp.com',
port: 12345, // your port here
colorize: true
})
]
});
logger.info('Hello from colorized winston', logger);
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.
var winston = require('winston'),
Papertrail = require('winston-papertrail').Papertrail;
pt = new Papertrail({
host: 'logs.papertrailapp.com',
port: 12345 // your port here
});
var logger = new winston.Logger({
transports: [ pt ]
});
pt.on('connect', function () {
logger.info('logging before I close');
logger.close(); // this closes the underlying connection in the Papertrail transport
});
FAQs
A Papertrail transport for winston with customMessage
The npm package winston-papertrail-enhanced receives a total of 0 weekly downloads. As such, winston-papertrail-enhanced popularity was classified as not popular.
We found that winston-papertrail-enhanced demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.