Extends console object to present:
- a more useful log output by adding the log type,
- timestamp,
- fancy colors,
- logging to remote GrayLog server,
- handle runtime errors and reach logging;
Fork of https://github.com/Juravenator/formal-console
Since this extends the console object, you only need to import & configure it once (probably in your main script) and you're good to go for the whole project.
Install the module by executing npm i -S graylogger
var consoleConfig = require('graylogger');
console.log("Hello, World!");
console.log("test with object", {test: "test"}, new Date());
console.log("%s: %s", "test with substitution", "ok?");
console.info("info message, log = info");
console.warn("something is fishy");
console.error("something went wrong");
console.debug("a debugging message");
console.success("you did it!");
console.dir({
test: "test",
arr: [
"one",
"two"
],
obj: {
test: "test",
arr: [
{
test: "test"
}
]
}
});
console.time("timer test");
console.timeEnd("timer test");
console.trace("we detected some serious error and would like a stack trace");
consoleConfig.disable('debug');
console.debug("debug output is disabled, this will do nothing");
consoleConfig.enable('debug');
consoleConfig.grayLog({
logHost: 'graylogger',
host: '8.8.8.8'
});
logHost is host (source) scope of logging.
consoleConfig.handleExceptions();
You will see in log all runtime errors in full info.
consoleConfig.options.grayLog.quitOnException = false;
if you need do not interrupt script's execution.
var consoleConfig = require('formal-console');
// custom date formatting
consoleConfig.options.dateFormatter = date => date.toLocaleString();
// simple
consoleConfig.makeSimpleLogger("fancy");
console.fancy("fancy message");
// custom styling
var term = require('terminal-kit').terminal;
consoleConfig.makeSimpleLogger("❤️ ");
// The first style object is for the prefix, and is a terminal-kit object
// Optional: the second style object is for the message, and is
// consoleConfig.nativeLog or consoleConfig.nativeError
consoleConfig.options.styles.fancy[0] = term.bgMagenta.underline.yellow;
console["❤️ "]("even more fancy message");
// completely custom logic
consoleConfig.makeCustomLogger("fatal", function() {
// reuse the standard prefix
consoleConfig.printPrefix("FATAL", term.error.bgRed.underline.white);
// log normally
consoleConfig.nativeError.apply(this, arguments);
// custom logic: trigger a crash
process.abort();
});
console.fatal("we went too fancy ☹️");