Skip to content

tgpholly/hsconsole

Repository files navigation

hsconsole   CodeFactor   Node.js CI   npm

I've been using this logger code since I started the move of all my applications to TypeScript with some modifications. It's based on an even earlier version initially started in Revolution. Since it's essentially the same every time I decided to make it an NPM package so I can reuse it.

What does this do

hsconsole logs to the console in a clean, formatted and readable way while also writing to log files on disk. All logs are kept until you decide to delete them.

Usage

Import the Console class from hsconsole

const { Console } = require("hsconsole");
import { Console } from "hsconsole";

and use it by calling either printInfo, printWarn or printError.

You can also specify a custom header to prepend to the start of the log file using customHeader as follows:

Console.customHeader(`xyz started at ${new Date()}`);

This must be called this before anything is logged to the console!

Cleaning up

It is important that you tell hsconsole to clean up before your application closes (i.e in the event of a CTRL+C) so it can be ensured that all log text is flushed to disk and to allow hsconsole to rename the latest log to the date your application was started. You can do this by calling cleanup in, for example, a SIGINT event handler:

process.on("SIGINT", signal => {
	Console.cleanup();
});

The above should work on both *nix and Windows systems.