Author: Arijit Banerjee
License: MIT
- 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 ๐๐ป)
-
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
orfalse
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:
-
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"):
-
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:
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:
Or use "SHORT" as option,
app.use(ultraLogger.APIReqLogger("SHORT")); // Sample Output: [ GET ] - /api : 200 - 2 ms
-
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:
-
FATAL LOG: COMING SOON
Author : Arijit Banerjee
About : Full Stack Web Developer | Cyber Security Enthusiast | Actor
Social Media : ย Instagram ย LinkedIn ย GitHub ย Website
Email: [email protected]
Website: iamarijit.dev
More info about the project will be updated soon!