Skip to content

Installation ​

bash
npm install --save logmoji

Usage ​

javascript
const logger = require("logmoji")({
  timestamp: false,
  disablePrefixText: false,
  logSymbols: {
    success: "ðŸ—Ģïļ",
  },
});

logger.success("You did it!");

// Output:  ðŸ—Ģïļ You did it

Available Log Functions ​

javascript
logger.success("You did it!");
// Output:  ✅ You did it

logger.fail("You're suck!");
// Output:  📛 You're suck

logger.error("Oh crap!");
// Output: ðŸšĻ Oh crap!

logger.warn("Oops!");
// Output: 🟠 Oops!

logger.warning("Heads up!");
// Output: ⚠ïļ Heads up!

logger.info("FYI");
// Output: 📄 Info: FYI

logger.log("Something happened");
// Output: 📄 Log: Something happened

logger.alert("Action required!");
// Output: ðŸ˜Ą Alert: Action required!

logger.crit("System is down!");
// Output: ðŸ˜ą Crit: System is down!

logger.debug("x = 42");
// Output: 🛠ïļ Debug: x = 42

logger.silly("wheee");
// Output: ðŸĪŠ Silly: wheee

Context Logger ​

Use createContext to create a child logger that prefixes every log with a context label. Useful for identifying which module or service a log comes from.

javascript
const authLogger = logger.createContext("Auth");

authLogger.info("User logged in");
// Output: 📄 Info: Auth User logged in

authLogger.error("Token expired");
// Output: ðŸšĻ Error: Auth Token expired

Nested contexts ​

createContext can be chained to build hierarchical labels. Each level is joined with >.

javascript
const httpLogger = logger.createContext("HTTP");
const reqLogger = httpLogger.createContext("GET /users");

reqLogger.info("Request received");
// Output: 📄 Info: HTTP > GET /users Request received

reqLogger.error("Unauthorized");
// Output: ðŸšĻ Error: HTTP > GET /users Unauthorized

Filtering by log level ​

Use minLevel to suppress output below a certain severity:

javascript
const logger = require("logmoji")({ minLevel: "warn" });

logger.debug("ignored");   // suppressed
logger.info("also ignored"); // suppressed
logger.warn("shown");      // shown
logger.error("shown");     // shown

Level order (least → most severe): silly → debug → log → info → success → warn → warning → fail → alert → error → crit

Allowlist filtering ​

Use levels to show only specific levels regardless of severity order:

javascript
const logger = require("logmoji")({ levels: ["debug", "error"] });

logger.debug("shown");   // shown
logger.info("hidden");   // hidden
logger.error("shown");   // shown

If both levels and minLevel are set, levels takes precedence.

Released under the MIT License.