@richardpickett/logger
v1.0.3
Published
A library for console logging
Downloads
27
Readme
logger
Description
chalk-based logging for your log-reading pleasure
npm i @richardpickett/logger
Example:
// your own logger.js
import { Logger, defaultLabels } from "@richardpickett/logger";
// we only want to log these in our app
// ideally you'll use a config and build the flags from your config
// so you can have all the logging in your code and control what gets
// seen through your config file
const logThese = ["LOG", "INFO", "SUCCESS", "ERROR"];
const flags = {};
defaultLabels.forEach((label) => {
flags[label] = logThese.indexOf(label) > -1;
});
const logger = new Logger({ flags });
export default logger;
// now in your project files:
import logger from "./logger.js";
logger.info("This is an info mesage");
logger.success("This is what success looks like");
logger.warning("This message should not get displayed");
logger.error("Looks like we have a problem, Houston");
Prefix
You can set a prefix on all your log entries by calling setPrefix()
:
logger.setPrefix(`[ProcessId: ${process.pid}]`);
logger.info("New worker started");
// yields: [2023-11-21T20:01:34Z] [INFO] [ProcessId: 45] New worker started
Additional constructor arguments
The full constructor parameter is a single object, defaulted like this:
{
methods = [
{
label: "LOG",
methodName: "log",
consoleMethod: "log",
labelChalk: standardColors.LOG_LABEL,
textChalk: standardColors.LOG_TEXT,
},
{
label: "DEBUG",
methodName: "debug",
consoleMethod: "log",
labelChalk: standardColors.DEBUG_LABEL,
textChalk: standardColors.DEBUG_TEXT,
},
{
label: "INFO",
methodName: "info",
consoleMethod: "log",
labelChalk: standardColors.INFO_LABEL,
textChalk: standardColors.INFO_TEXT,
},
{
label: "TRACE",
methodName: "trace",
consoleMethod: "log",
labelChalk: standardColors.TRACE_LABEL,
textChalk: standardColors.TRACE_TEXT,
},
{
label: "SUCCESS",
methodName: "success",
consoleMethod: "log",
labelChalk: standardColors.SUCCESS_LABEL,
textChalk: standardColors.SUCCESS_TEXT,
},
{
label: "WARNING",
methodName: "warning",
consoleMethod: "error",
labelChalk: standardColors.WARNING_LABEL,
textChalk: standardColors.WARNING_TEXT,
},
{
label: "ERROR",
methodName: "error",
consoleMethod: "error",
labelChalk: standardColors.ERROR_LABEL,
textChalk: standardColors.ERROR_TEXT,
},
],
flags = { LOG: true, DEBUG: true, INFO: true, TRACE: true, SUCCESS: true, WARNING: true, ERROR: true },
prefix = "",
logDisabled = true,
}
methods
: these are the formats for all the logger.<method>()
calls. Create your own, or override these to change the formatting.
flags
: these turn methods on or off. If a flag is missing, it will default be turned off. Calling a method that is turned off will not result in an error, it's just not logged.
prefix
: set this prefix to all your logs. This way you can create multiple logger instances and separate their logs from the output using the prefix
logDisabled
: when the logger is initialized it will log all the disabled log methods. This by default will appear at the top of your log file, self-explaining why certain logs may not be seen.