logger
Provides wrapper around winston@3 npm module
npm i git@gitlab.com:ZulusK/nodejs-logger.git
Structure
USAGE
const Logger = require('@dev/logger');
const config = {
name: 'my awesome Logger',
timestamp: true,
levels: {
foo: 1
},
colors: {
foo: 'yellow'
},
transports: [
{
type: 'console',
level: 'debug'
},
{
type: 'file',
level: 'debug',
maxsize: 1024 * 1024 * 10, // 10 MB
maxFiles: 10,
filename: 'log.txt'
}
]
};
const logger = new Logger(config);
logger.foo('Hello, %s', 'world');
logger.info("That's all, %O", { who: 'folks' });
API
constructor(config)
Creates a new Logger
-
config
- configuration of Logger instance-
[name]
- name of the logger, will be used as label to each logger output, can be empty -
[timestamps]
- is timestamps enabled -
[timesatmpsFormat]
- format of timestamps, default'HH:MM:SS DD/MM/YY'
-
[levels]
- custom logging levels, see example -
[colors]
- custom colors of logger levels, see example -
transports
- an array of transports to be used for logging, must be not empty-
type
- type of transports, one of the next valuesconsole
,file
-
[colorize]
- enable colors in output -
[silent]
- make transport silent (disable it) -
level
- required, which log level should handle this logger, see default levels Next options are used only in file-type logger. -
filename
- required in file-type logger, directory + filename of destination log file -
[maxsize]
- max file size, if size of log file will be greater than this value, winston will create a new one -
[maxFiles]
- max number of log files, old files will be replaced by new files
-
-
patchLoggers()
Replaces all global console
methods with methods of winston. Eq. call console.info()
are the same to call logger.info()
. Original methods are available in property console._native
. So you don't need to import logger in each your file. You can use global defined object console
Contributing
To start contributing do
git clone git@gitlab.com:ZulusK/nodejs-logger.git
git checkout develop
git checkout -b <your-branch-name>
The project is developed in accordance with the GitFlow methodology.
What it means
- All work you should do in your own local branch (naming is important, look below), then make pull request to develop branch
- Your local branch should not have conflicts with repository develop branch. To avoid it, before push to repository, do:
git pull origin develop # resolve all conflicts, if they exists git add --all git commit -m "fix conflicts" git push origin <your-branch-name>
- We use next naming of branches:
branch template | description |
---|---|
feat/<short-feature-name> |
new feature, ex. feat-add-logger
|
fix/<short-fix-name> |
fix of existing feature, ex. fix-logger
|
refactor/<short-scope-description> |
refactor, linting, style changes, ex. style-update-eslint
|
test/<short-scope-descriptiopn> |
tests, ex. test-db-connections
|
docs/<short-scope-descriptiopn> |
documentation, ex. test-db-connections
|
Important, before push
-
We use eslint with this rules to lint code, before making pull request, lint your code:
npm run lint
-
Before making pull request, run tests
npm run test