brinkbit-logger
An opinionated winston logger.
Dynamically switch between four winston transports within a node process. Override on a per-instance basis.
Install
npm i --save brinkbit-logger
Usage
Every instance expects to be passed a filename for easy performant context.
const logger = __filename ; logger;
Morgan middleware is exposed for convenience .
const app = ;app;
Logging levels are configured following RFC5424
emerg: 0 alert: 1 crit: 2 error: 3 warning: 4 notice: 5 info: 6 debug: 7
Options
The brinkbit-logger is intended to be configured using environment variables. However you can override the global configuration on a per-instance basis like so:
const logger = __filename logFile: 'customLogFile.log' ;
Transport
Transports define where logs are sent, as well as several formatting rules.
By default, the transport type is configured based on the NODE_ENV
environment variable.
Optionally override the global configuration on a per-instance basis like so:
const logger = __filename transport: 'debug' ;
The following levels are accepted:
'production'
(default) - writes json to a log file without console output'debug'
- extremely verbose output to the console. Negative performance impact'development'
- reasonable output, designed for regular development usage. Negative performance impact'test'
- only prints out emerg level so you can focus on the console output of your tests
Log File
Environment Variables
- LOG_FILE
- LOG_SIZE
- LOG_COUNT
Config Object
info
and higher levels will log to files in production.
- config.logFile
- config.logSize
- config.logCount
Slack Integration
crit
and higher levels can log to slack in production.
Environment Variables
- SLACK_TEAM
- SLACK_HOOK
- SLACK_CHANNEL
- SLACK_USERNAME
Config Object
- config.slack.team
- config.slack.hookUrl
- config.slack.critChannel
- config.slack.username
Papertrail Integration
info
and higher levels can log to Papertrail in production.
Environment Variables
- PAPERTRAIL_HOST
- PAPERTRAIL_PORT
Config Object
- config.paperTrail.host
- config.paperTrail.port
- config.paperTrail.program
- config.paperTrail.hostname
Dockercloud Environment Variables
The following environment variables are pulled from Dockercloud configuration:
- DOCKERCLOUD_SERVICE_HOSTNAME
- DOCKERCLOUD_CONTAINER_HOSTNAME
- DOCKERCLOUD_NODE_HOSTNAME
- DOCKERCLOUD_STACK_NAME