Logger for Node.js
Installation
npm i unloger
Usage
Import already created instance. You can't configure it.
import { logger } from 'unloger';
logger.info('Hello World!');
Create your own instance and configure it.
import { createLogger } from 'unloger';
export const logger = createLogger(options: LoggerConfig);
See LoggerConfig
for more details.
Creating your own reporter
- There are two types of reporters:
- Within ReporterLevels you can create a reporter for each log level. These without a reporter will use the default reporter or the reporterOverride if it is set.
import { createLogger } from 'unloger';
const logger = createLogger({
reporter: {
error: ({ message, type, timestamp, icon, color }, options) => {
console.log(`[${timestamp}] ${icon} ${message}`);
}, // This will override the default reporter for error level
},
reporterOverride: ({ message, type, timestamp, icon, color }, options) => {
console.log(`[${timestamp}] ${icon} ${message}`);
}, // Level that aren't custom configured will fallback to this reporter
});
Types
LoggerConfig
export type LoggerConfig = Partial<{
level: number;
files: Partial<{
path: string; // Path to the folder where the logs will be saved
extension: 'text' | 'json';
fileName: string; // Name of the file
}>;
format: Partial<{
colors: boolean;
timestamp: boolean;
}>;
reporter: ReporterLevels;
reporterOverride: ReporterOverride;
}>;
ReporterLevels
export type ReporterLevels = Partial<{
[key in LogType]: (
{ message, type, timestamp, icon, color }: ReporterObject,
options: LoggerConfig,
) => void;
}>;
ReporterOverride
// If this reporterOverride is set in a logger instance, it will override level that aren't custom configured
export type ReporterOverride = (
{ message, type, timestamp, icon, color }: ReporterObject,
options: LoggerConfig,
) => void;
Use color
import { color } from 'unloger/color';
Types
declare const color:
| {
reset: (string: string) => string;
bold: (string: string) => string;
dim: (string: string) => string;
italic: (string: string) => string;
underline: (string: string) => string;
inverse: (string: string) => string;
hidden: (string: string) => string;
strikethrough: (string: string) => string;
black: (string: string) => string;
red: (string: string) => string;
green: (string: string) => string;
yellow: (string: string) => string;
blue: (string: string) => string;
magenta: (string: string) => string;
cyan: (string: string) => string;
white: (string: string) => string;
gray: (string: string) => string;
bgBlack: (string: string) => string;
bgRed: (string: string) => string;
bgGreen: (string: string) => string;
bgYellow: (string: string) => string;
bgBlue: (string: string) => string;
bgMagenta: (string: string) => string;
bgCyan: (string: string) => string;
bgWhite: (string: string) => string;
blackBright: (string: string) => string;
redBright: (string: string) => string;
greenBright: (string: string) => string;
yellowBright: (string: string) => string;
blueBright: (string: string) => string;
magentaBright: (string: string) => string;
cyanBright: (string: string) => string;
whiteBright: (string: string) => string;
bgBlackBright: (string: string) => string;
bgRedBright: (string: string) => string;
bgGreenBright: (string: string) => string;
bgYellowBright: (string: string) => string;
bgBlueBright: (string: string) => string;
bgMagentaBright: (string: string) => string;
bgCyanBright: (string: string) => string;
bgWhiteBright: (string: string) => string;
}
| {
[x: string]: StringConstructor;
};
export { color };