small-type-logger
v0.1.0
Published
A lightweight TypeScript logging utility with pluggable output writers.
Downloads
6
Readme
small-type-logger
A lightweight TypeScript logging utility with pluggable output writers.
Features
- Simple
Loggerclass - Pluggable output adapters (
ConsoleOutput,HttpOutput,FileOutput) - Fully typed
- No dependencies
- Works in Node, browsers, and serverless
Installation
npm install small-type-loggerUsage
Basic Example
import { Logger, Router, StdoutOutput, LineFormatter } from "small-type-logger";
const router = new router();
const logger = new Logger(router);
router.addRoute(new LineFormatter(), new StdoutOutput(), () => true);
logger.info("Hello world");File Output (Node)
import { Logger, Router, FileOutput, JsonFormatter, Log, LogLevel } from "small-type-logger";
const router = new router();
const logger = new Logger(router);
router.addRoute(new JsonFormatter(), new FileOutput('/var/log/app.log'), (log: Log) => log.level == LogLevel.DEBUG || log.level == LogLevel.NOTICE || log.level == LogLevel.WARNING);
router.addRoute(new JsonFormatter(), new FileOutput('/var/log/app.err.log'), (log: Log) => log.level == LogLevel.ERROR || log.level == LogLevel.CRITICAL);
logger.error("An error occurred!");HTTP Output
import { Logger, Router, HttpOuput, JsonFormatter, Log, LogLevel } from "small-type-logger";
const router = new router();
const logger = new Logger(router);
router.addRoute(new JsonFormatter(), new FileOutput('https://logstash.acme.com:8080'), (log: Log) => true);
logger.warn("Something happened");Loki Output
import { Logger, LokiOutput } from "small-type-logger";
import { Logger, Router, LokiOutput, LineFormatter, Log, LogLevel } from "small-type-logger";
const router = new router();
const logger = new Logger(router);
router.addRoute(new LineFormatter(), new LokiOuput({'https://victorialogs.acme.com:8080/api/v1/push', labels: {
job: "testJob",
host: "my-host"
}), (log: Log) => true)
logger.warn("Something happened");License
MIT — see LICENSE.txt
