white-logger
A very simple nodejs and browser logger with only one dependency.
feature
- Only one dependency. Use Luxon for dealing with dates and times.
- Pretty print.
- Native TypeScript.
- Circular safe.
install
npm i white-logger
useage
nodejs
use typescript or ESM
import { nodelogger as logger } from "white-logger/node";
logger.nomal("nomal-level", "normal reported.");
logger.info("info here", "something reported.", {
hello: "world",
});
logger.warn("notice", "something warnning.", ["foo", "baz"]);
logger.err("oops!", "something error!");
You will get like this in your console.

You can also give __filename
to the second parameter to get relative path output from your project root dir.
import { nodelogger as logger } from "white-logger/node";
logger.info("some info", __filename, "i am here!");
And you will get like this. Easy to find out the problem, right?

By default, white-logger does not write log to files. If you want to do this, please configure some setting like this.
import { nodelogger as logger, configLogger } from "white-logger/node";
import path from "path";
configLogger({
logPath: path.resolve(process.cwd(), "logs"),
});
logger.info("some-info", "something reported.");
Depending on the level, the logs will be written to different files.
logger.nomal
will write to <timestamp>_nomal.log
logger.info
will write to <timestamp>_info.log
logger.warn
will write to <timestamp>_warn.log
logger.err
will write to <timestamp>_err.log
Timestamp will change from day to day. So, the logs are output to a different file each day.
You can also only pass a relative path, white-logger will resolve it to your project root directory automatically.
configLogger({
logPath: "logs",
});
use CommonJS
const { nodelogger } = require("white-logger/node");
nodelogger.nomal("nomal-level", "normal reported.");
You can also import with a name of your choice.
const mylogger = require("white-logger/node").nodelogger;
mylogger.nomal("nomal-level", "normal reported.");
browser
You can use white-logger in any framework. Like vue or react.
import { browserlogger as logger } from "white-logger/esm/browser";
logger.nomal("nomal-level", "normal reported.");
logger.info("info here", "something reported.", {
hello: "world",
});
logger.warn("notice", "something warnning.", ["foo", "baz"]);
logger.err("oops!", "something error!");
Open your console and you can see the results.

configuration
export type white-loggerConfig = {
logPath: string | undefined;
logDateFmt: string;
filenameDateFmt: string;
};
let __config__: white-loggerConfig = {
logPath: undefined,
logDateFmt: "yyyy'-'LL'-'dd HH'-'mm'-'ss Z",
filenameDateFmt: "yyyy'-'LL'-'dd",
};
About Luxon fmt string, please see this Luxon document
logPath
The path of directory that white-logger will write log to.logDateFmt
The format of the date being printed to the console.filenameDateFmt
The format of the date before being inserted into the output file.
Why is it call White logger?
"Any color you want, so long as it is Black."
So, White logger.