README
Logsen
The only logger you will ever need in NodeJS.
Installation
Just install it like any other package from npm.
$ npm i logsen
You don't need to install typings for it, they ship with the regular installation.
Usage
JavaScript
You can just require it like any other JS-module.
const $ = require("logsen");
If you want to import the ExpressUtils
aswell, use the destructor-import:
const { $, ExpressUtils } = require("logsen");
TypeScript
You can just import it like a regular TS-module.
import $ from "logsen";
If you want to import the ExpressUtils
aswell, destructor your import:
import { $, ExpressUtils } from "logsen";
Functionality
Patterns
You can use a custom pattern for logged messages. If you don't want create your own format, a default format is automatically used.
Logsen supports the following placeholders for formatting the date:
DD
for daysMM
for monthsYY
andYYYY
for yearshh
for hoursmm
for minutesss
for seconds
You can change the pattern for the root logger whenever you want:
$.config.formatter = new PatternFormatter("DD-hh_MM:mm.YY,ss");
Logging
Logsen
's loggers provides you some functions to manage your console-output:
/**
* Log a custom record to the default backend.
* It is not styled, just like you would use "console.log(...)".
*/
$.log({
level: LogLevel.Info,
timestamp: new Date(),
message: "..."
});
/**
* Log something to the default backend, but with a blue "[INFO]" infront of it.
*/
$.info("...");
/**
* Log something to the default backend, but with a green "[SUCCESS]" infront of it.
*/
$.success("...");
/**
* Log something to the standard error, but with a red "[ERROR]" infront of it.
*/
$.error("...");
Child Loggers
The default logger in Logsen is called the "root" logger and is exported under the name $
. You can, however, create custom loggers that inherit the configuration like this:
const myLogger = $.makeLogger({
name: "A cool logger",
level: LogLevel.Error
});
This will automatically copy the configuration and the selected backend from the root logger $
for all unspecified properties.
Of course, you can also create your completely own loggers:
const logger = new Logger({
name: "My very own logger",
level: LogLevel.Info,
formatter: new PatternFormatter()
}, new StdoutBackend());
Note that this will, however, ignore the root logger's configuration and is thus discouraged for libraries.
Custom Backends
Logsen
also makes it easy to log to other destinations than stdout. For example, you can easily configure the root logger to output both to stdout and a file:
$.backend = new CombinedBackend([
new StdoutBackend(),
new FileBackend("path/to/my/log.txt")
]);
Express
To log incoming requests to your express-application, you can use ExpressUtils.log
:
/**
* Import Express and ExpressUtils.
*/
import express from "express";
import { ExpressUtils } from "logsen";
/**
* Create express app and use the logging middleware in it.
*/
const app = express();
app.use(ExpressUtils.log);
/**
* Now every request will be logged like this:
*
* [METHOD] <URL>
*/
...