simple-winston v0.2.0
Simple Winston
Installation
npm install simple-winston
Why?
I love winston, but there are a few basic things I usually enjoy that are missing, and I find myself copying the same files from my other packages over and over again so I figured I'd create a package instead.
Extended features
Args
simple-winston takes in any amount of args into the log call. It can handle strings, numbers, objects, errors, and arrays.
logger.warn("string", 123, new Error("message"), { object: true }, ["array", "with", "strings"]);
Children
simple-winston makes it possible to create new child logger instances that are hooked into the root winston instance. This makes it a bit easier to keep track of where your log message was sent.
const child = logger.createChildLogger("child-logger-context");
child.info("this is the child logger");
JavaScript Setup
Simplest way to get going with simple-winston is to copy this into a logger file. Whenever you need a logger you can just import that one.
import packageJson from "../package.json";
import { Logger, LogLevel } from "simple-winston";
const logger = new Logger({
context: "logger-context",
packageName: packageJson.name,
packageVersion: packageJson.version,
});
logger.addConsole(LogLevel.INFO);
logger.addTail(LogLevel.DEBUG);
logger.addFileTransport(LogLevel.ERROR);
logger.addFileTransport(LogLevel.SILLY);
export default logger;
TypeScript Setup
TypeScript does not import package.json
very well so it's best to read the file with fs
instead like so:
import { readFileSync } from "fs";
import { join } from "path";
const pkg = readFileSync(join(__dirname, "..", "..", "package.json"), { encoding: "utf8" });
const { name, version } = JSON.parse(pkg);