loggers-factory
v1.1.3
Published
Javascript package that makes the use of loggers a breath.
Downloads
21
Maintainers
Readme
Loggers Factory
Javascript package that makes the use of loggers a breath. It relies on the winston module. There's a lot of room for improvement but it does the job nonetheless. Enjoy :) !!
Setup
Install the loggers factory in your project as an NPM dependency :
npm install loggers-factory
You can also clone it into your project directory from loggers-factory GitHub repository:
git clone https://github.com/pasdechancee/loggers-factory.git
Usage
Default logger
const get_logger = require("loggers-factory");
const logger = get_logger();
// => your default logger !
logger.info("Hello world !");
Console output:
2018-12-09T13:17:34.768Z [MAIN.7532] info: Hello world !
Log output:
{"timestamp":"2018-12-09T13:17:34.768Z","level":"info","source":"MAIN.7532","message":"Hello world !"}
Custom logger
You only have to change the values that you'd like to custom ! Your custom parameters will be deep merged with the default ones.
const get_logger = require("loggers-factory");
const custom_params = {
source: "my_app", // this changes the logs label.
// This is your new default logs folder path.
logs_path: "my_app/folder/logs",
level_design: {
levels: {
// min level = 5... This is a point to improve !
// we're not able to insert levels in betwee nthe existing ones.
verbose: 5
},
colors: {
// custom style if you don't like the winston default.
verbose: "italic bold grey"
}
},
transport: {
console: {
// The console is disabled in PRODUCTION env.
level: "warn"
},
logs: {
combined: {
// This overwrites the default logs folder path.
logs_path: "my_app/folder/logs/combined"
},
errors: {
// customed_winston_format = winston format that you created.
format: custom_winston_format
},
custom_log: {
name: "custom",
level: process.env.LOG_CUSTOM_LEVEL || "debug",
logs_path: "my_app/folder/logs",
format: custom_winston_format,
date_pattern: "DD-MM-YYYY",
// see https://github.com/winstonjs/winston-daily-rotate-file
// for max_size and max_files format.
max_size: undefined,
max_files: "14d",
on_limit: undefined // rotation not supported yet !!
}
}
}
};
const logger = get_logger(custom_params);
// => your customed logger !
.env variables
You can set up your own .env variables if you want. If you don't, the module will set these by default.
If you have your own .env variables, you don't have to set them in your custom parameters anymore.
LOG_PATH = "my_app/folder/logs";
LOG_CONSOLE_LEVEL=info
LOG_COMBINED_LEVEL=debug
LOG_ERRORS_LEVEL=error
LOG_"any custom level you want"_LEVEL=silly
Contributing
Please read the CONTRIBUTING document before making changes that you would like adopted in the code.
© MIT license Contact: [email protected]