npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ultralogger

v1.4.1

Published

A Personalized Logger that can work as a Normal Logger, API Req Logger, Can log in Files & even Mail in case of emergency.

Downloads

147

Readme

Logo

UltraLogger - The only Logger System you need

Making your Javascript and Typescript life EZ AF! 🤝🏻🙏🏻

Author: Arijit Banerjee License: MIT

Demo Screenshot

   

NPM License   NPM Version   npm collaborators   npm type definitions  

GitHub language count   GitHub top language   GitHub last commit (branch)  

Features:

  • Types Support for Intellisense 💡
  • JSDoc In Code Documentation - just like any good library, we provide documentation, information and examples for our functions and methods on hover using JSdoc and TS. 🤙🏻
  • Config method to create and setup configs for different features ☸
  • Customizable Log Size and Information 💪🏻
  • 6 Types of Colorful & Pre-formatted Log Methods - to make your life easy while debugging (we all know logs are superior to debuggers 😏 - who uses debugger anyways eww 🤢🤮)
  • API Request Logger - You can use the APIReqLogger method as middleware in your Express Setup (or whatever you use) - life made easy to keep an eye on those freaky api calls 😇
  • File Logs - Option to save all those API Logs in a file too - gotta catch those Non-NPCs who was trying to mess up the API - But AFTER THE ☕ Break - the file will keep all them logs safe, don't worry we gotchu 🧐
  • Super Special Feature - FATAL LOG: If you use this for Fatal Error Cases (HIGH SEVERITY), then you have an option to setup a SendGrid Email ApiKey - and our system will notify you, everytime one of these logs were made! 😉 ( Look, we know we all devs are lazy! 😴 No one got time to keep looking at em logs xD Devs gotta sleep every half an hour too 💤 Just gotta check the 📧 in-case 💩 goes 👇🏻)

Setup & Usage:

  • Import: Import the package - Yall know what this stuff is fs

    For ECMAScript Module a.k.a ESM -

    import * as ultraLogger from "ultralogger";

    For CommonJS a.k.a CJS -

    const ultraLogger = require("ultralogger");
  • Config: Setup your own config with the config method and pass a config object of type ultraLoggerConfig.

    // UltraLogger Configuration
    //  *** TYPESCRIPT ***
    
    // Make a Config Object of type ultraLoggerConfig and pass it in the config()
    const config: ultraLogger.ultraLoggerConfig = {
      logType: "SHORT", // You can choose any of these 3 - "FULL" or, "DEV" or "SHORT"
    };
    
    ultraLogger.config(config);
    
    // OR,
    
    // Call the config method and write the config inside the ()
    ultraLogger.config({
      logType: "SHORT", // You can choose any of these 3 - "FULL" or, "DEV" or "SHORT"
    });
    // UltraLogger Configuration
    //  *** JAVASCRIPT ***
    
    // Make a Config Object and pass it in the config()
    const config = {
      logType: "SHORT", // You can choose any of these 3 - "FULL" or, "DEV" or "SHORT"
    };
    
    ultraLogger.config(config);
    
    // OR,
    
    // Call the config method and write the config inside the ()
    ultraLogger.config({
      logType: "SHORT", // You can choose any of these 3 - "FULL" or, "DEV" or "SHORT"
    });

    Details about the Config Properties:

    | CONFIG PROPERTIES | TYPES | OPTIONAL ? | VALUES | DEFAULT VALUE | | --------------------- | -------------------- | -------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------- | | logType | string | YES | "FULL" or "DEV" or "SHORT" | "FULL" | | writeToFile | boolean | YES | true or false | false | | fileLocation | string | YES | ex: ./folder_that_exists/ | - (as 'writeToFile' is false so this is not set - as it is not needed) | | fileName | string | YES | file_name.log | - (as 'writeToFile' is false so this is not set - as it is not needed) |

  • JSDoc & Types Support: Just hover over the method name that you want to know more about, and you should get the JSDoc info for that method. FOr ex: here we are hovering over the config method because we want some more info: JSDoc & Types Support

  • New 6 Types of Colorful Logs for your Daily Coding and Debugging sessions: We are bringing you 6 types of different logs through UltraLogger - which you can use instead of your everyday boring console.log() :

    ultraLogger.log("Server is running on port 5000");
    ultraLogger.muted("Server is running on port 5000");
    ultraLogger.info("Server is running on port 5000");
    ultraLogger.warn("Server is running on port 5000");
    ultraLogger.error("Server is running on port 5000");
    ultraLogger.success("Server is running on port 5000");

    Sample Output (with the 'logType' set as "DEV"):

    6 types of logs - screenshot

  • Use as Express Middleware to Log Requests Data: You can use it like an express middleware.

    // *** TYPESCRIPT ***
    const app: Application = express();
    
    app.use(ultraLogger.APIReqLogger());
    
    // Sample Output: [ 2023/10/05, 05:31:11 pm ] [ ::ffff:127.0.0.1 ] - [ GET ] - /api : 200 - 3 ms
    // *** JAVASCRIPT ***
    const app = express();
    
    app.use(ultraLogger.APIReqLogger());
    
    // Sample Output: [ 2023/10/05, 05:31:11 pm ] [ ::ffff:127.0.0.1 ] - [ GET ] - /api : 200 - 3 ms

    OR,

    If you just want to use UltraLogger as your Express API Request Logger - no need to setup the config. You can pass Log Option through the midleware method itself -

    // *** TYPESCRIPT ***
    const app: Application = express();
    
    app.use(ultraLogger.APIReqLogger("FULL")); // Available Options: "FULL", "DEV", "SHORT"
    
    // Sample Output: [ 2023/10/05, 05:31:11 pm ] [ ::ffff:127.0.0.1 ] - [ GET ] - /api : 200 - 3 ms
    // *** JAVASCRIPT ***
    const app = express();
    
    app.use(ultraLogger.APIReqLogger("FULL")); // Available Options: "FULL", "DEV", "SHORT"
    
    // Sample Output: [ 2023/10/05, 05:31:11 pm ] [ ::ffff:127.0.0.1 ] - [ GET ] - /api : 200 - 3 ms

    If / when you use the APIReqLogger method as middleware without passing any values - "FULL" is set as Default Mode. Ex:

    app.use(ultraLogger.APIReqLogger()); // We set it as FULL - by Default
    
    // Sample Output: [ 2023/10/05, 05:31:11 pm ] [ ::ffff:127.0.0.1 ] - [ GET ] - /api : 200 - 3 ms

    Sample Output Screenshot:

    screenshot of long api logs

    Or use "DEV" as option,

    app.use(ultraLogger.APIReqLogger("DEV"));
    
    // Sample Output: [ 2023/10/05, 05:31:10 pm ] [ GET ] - /api : 200 - 8 ms

    Sample Output Screenshot:

    screenshot of short api logs

    Or use "SHORT" as option,

    app.use(ultraLogger.APIReqLogger("SHORT"));
    
    // Sample Output: [ GET ] - /api : 200 - 2 ms

    screenshot of short api logs

  • Log API Requests Data on File too - along with logging the API Requests Data, you can log them in a file and save it too if you need it!

    • Setup the Config Properly with the keys and voila
    • Yes, we have Typescript Support so your VSCode will provide you all the juicy auto suggestion 😉

    Ex:

    // *** TYPESCRIPT ***
    
    // UltraLogger Configuration
    const config: ultraLogger.ultraLoggerConfig = {
      logType: "DEV",
      writeToFile: true,
      fileLocation: "./",
      fileName: "UltraLogger.log",
    };
    
    ultraLogger.config(config);
    // ***JAVASCRIPT ***
    
    // UltraLogger Configuration
    const config = {
      logType: "DEV",
      writeToFile: true,
      fileLocation: "./",
      fileName: "UltraLogger.log",
    };
    
    ultraLogger.config(config);

    Or, you can directly create and pass the Config Object while calling the config(). Ex:

    // Same for both Typescript & Javascript
    
    ultraLogger.config({
      logType: "DEV",
      writeToFile: true,
      fileLocation: "./",
      fileName: "UltraLogger.log",
    });

    Screenshot of the Log File:

    screenshot-of-file-logs

  • FATAL LOG: COMING SOON


Author:

Author : Arijit Banerjee

About : Full Stack Web Developer | Cyber Security Enthusiast | Actor

Social Media :   Instagram Instagram   Linkedin LinkedIn   GitHub GitHub   Website Website

Email: [email protected]

Website: iamarijit.dev


More info about the project will be updated soon!