It's pretty self-explanatory. It's a mini wrapper for the console that adds a prefix for each log.
Example:
var logger = require("prefix-log")("[MY LOGGER]");
logger.log("Mama mia"); // ["MY LOGGER"]MAMA MIA
logger.log(555); // ["MY LOGGER"] 555
It also accepts the error
and warn
methods.
logger.error("You will have a bad time");
logger.warn("Being faster than light leaves you in darkness.");
Accepts a function that sets a condtion to log OR a object with options;
logWhen <Function>
: Condition to execute the methodlog
errorWhen <Function>
: Condition to execute the methoderror
warnWhen <Function>
: Condition to execute the methodwarn
prefixAsArg <boolean>
: By default, if the first log argument is a<String>
, the prefix and the<String>
will be concatenated. With this option set astrue
the prefix will be placed on a separated argument.
If you want to log only when met with a certain condition. You can set a function to validate it.
var prefixLog = require("prefix-log");
var devMode = true;
var logger = prefixLog("[DEV LOGGER] ", function(){
return devMode === true;
})
logger.log("IT WILL PRINT"); // > [DEV LOGGER] IT WILL PRINT
devMode = false;
logger.log("IT WILL NOT PRINT") // *it does not print
You can also choose which method needs to match a specific condition:
var prefixLog = require("prefix-log");
devMode = false;
var logger = prefixLog("[LOG ONLY IN DEV] ", {
// This function is called before every "log"
logWhen: function(){
return devMode === true;
},
// This function is called before every "error"
errorWhen: function(){
return true;
},
// This function is called before every "warn"
warnWhen: function(){
return true;
}
})
logger.log("IT WILL NOT PRINT"); // *it does not print
logger.error("IT WILL PRINT") // > [LOG ONLY IN DEV] IT WILL PRINT
If you want to force a log you must call the force
method.
Like this:
// With this logger configuration, the logger will never log. Unless we force it.
var logger = require("prefix-log")("[FORCED TEST]", () => false);
logger.log("I WILL PULL A SNEAKY ON YA"); // *It does not print
logger.force().log("GOT EM"); // GOT EM