Giter VIP home page Giter VIP logo

logerian's Introduction

Logerian

Description

Logerian is a logging utility made by me! I made this logging utility mainly because I am too dumb to understand other loggers like winston and signale. If you're willing to contribute, please read CONTRIBUTING.md.

Demo

GIF of library in action

Usage

To use this logger, you can simply just create a new logger instance and it'll work. It uses default options, which is the built-in coloredLog prefix, routing log levels correctly to stdout and stderr respectively:

import { Logger } from "logerian"; // ES import
const { Logger } = require("logerian"); // CJS import

const logger = new Logger();

logger.info("Hello World!");
// Output: [17:43:01] [INFO] Hello World!

By default, the logger adds a prefix with a timestamp and log level as shown in the example code above. If you wish to change that, you'll have to define a stream when you create the logger.

const logger = new Logger({
  streams: [
    {
      stream: process.stdout,
    },
  ],
});

logger.info("foobar");
// Output: foobar

A logger can utilize multiple output streams:

const logger = new Logger({
  streams: [
    {
      stream: process.stdout,
    },
    {
      stream: fs.createWriteStream("log.txt"),
    },
  ],
});

logger.info("Iron Man dies in Endgame");
// Output: Iron Man dies in Endgame
logger.info("Steve Rogers is old!!");
// Output: Steve Rogers is old!!
# log.txt
Iron Man dies in Endgame
Steve Rogers is old!!

There's also a neat thing called log levels!

import { Logger, LoggerLevel } from "logerian";
const { Logger, LoggerLevel } = require("logerian");

const logger = new Logger({
  streams: [
    {
      level: LoggerLevel.WARN,
      stream: process.stdout,
    },
    {
      level: LoggerLevel.DEBUG, // Debug level is default
      stream: fs.createWriteStream("log.txt"),
    }
  ],
});

// Logs to both - stdout and log.txt
logger.error("Uh oh! There's an error!");

// Logs only to log.txt
logger.debug("By the way, there's an error because your code sucks!");

If you want to use pinned lines (as they're called in code), just use logger.createPinnedLine. The rest should be pretty easy to understand from the documentation

For advanced users, view the JSDocs.

logerian's People

Contributors

swanx1 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.