@runs/logger
v1.0.1
Published
Highly configurable logging based on Winston
Downloads
2
Readme
@runs/Logger:
runs-logger is a node logger built on top of Winston logger. The purpose of this package is to add extra features to Winston's default logging, and allow both high customizability, and ease of use.
Installation:
npm install @runs/logger
yarn add @runs/logger
Usage:
Import/require:
// node:
const Logger = require('@runs/logger');
// ES6 & Typescript
import Logger from '@runs/logger';
Note for TypeScript: This module was written in TypeScript, no need to install @types package.
1. Create new instance:
const logger = new Logger({ /* winston.LoggerOptions */ });
Logger constructor takes 1 argument of type winston.LoggerOptions
, interface shown below:
interface LoggerOptions {
levels?: Config.AbstractConfigSetLevels;
silent?: boolean;
format?: logform.Format;
level?: string;
exitOnError?: Function | boolean;
defaultMeta?: any;
transports?: Transport[] | Transport;
exceptionHandlers?: any;
}
For more details about nested types, please refer to Winston Types and for usage of these items, please refer to Winston Docs.
2. Start logging:
Example:
logger.log({
level: 'info', // can be one of: info, warn, error, verbose, debug, or silly
message: 'Starting server...', // log message
details: { // optional extra data to include with your log
port: '3000',
status: 'ok',
},
});
});
That's it.
Behavior:
By default (as of release 1.0.0) logger will log to:
- The console during development (NODE_ENV=development).
- File named after your app name in your
package.json
'sname
attribute, file is called{NAME}-%DATE%.log
inlogs
dir in the root of your app, it'll rotate the file when either the file reaches 20MB, or is 14 days old.