UNPKG

js-dlogger

Version:

A lightweight and efficient logging utility for JavaScript applications. This package provides multiple logging functions such as info(), dLog(), warn(), debug and error(), displaying logs in the console along with the filename for better debugging and tr

132 lines (100 loc) โ€ข 4.35 kB
# js-dlogger (logger for js frameworks) ## **๐Ÿ“Œ Description** js-dlogger is a lightweight, configurable logger for JavaScript, React.js, and React Native applications. It provides structured logging with different levels (info, debug, dLog, Warn, Error) and supports environment-based logging. --- <p align="center"> <a href="https://www.npmjs.com/package/js-dlogger"> <img src="https://img.shields.io/npm/v/js-dlogger?color=brightgreen&label=npm&logo=npm" alt="npm version" /> </a> <a href="https://github.com/structlooper/js-dlogger/issues"> <img src="https://img.shields.io/github/issues/structlooper/js-dlogger?color=yellow&label=issues&logo=github" alt="GitHub issues" /> </a> <a href="https://github.com/structlooper/js-dlogger"> <img src="https://img.shields.io/github/stars/structlooper/js-dlogger?color=blue&label=GitHub%20Stars&logo=github" alt="GitHub stars" /> </a> <a href="https://github.com/structlooper/js-dlogger/blob/master/LICENSE"> <img src="https://img.shields.io/github/license/structlooper/js-dlogger" alt="License" /> </a> <a href="https://www.npmjs.com/package/js-dlogger"> <img src="https://img.shields.io/npm/dt/js-dlogger?color=purple&label=Downloads&logo=npm" alt="npm downloads" /> </a> </p> ## **Installation** Install the package via npm: ```bash npm install js-dlogger ``` or ```bash yarn add js-dlogger ``` ## Usage : ## **โœ… Basic Usage** Hereโ€™s an example to get you started: ```javascript import Logger from "js-dlogger"; Logger.info("App", "INIT", "Application started"); Logger.debug("App", "DEBUG", "This is a debug message"); Logger.dLog("App", "DATA", { key: "value" }); Logger.warn("App", "WARNING", "This is a warning message"); Logger.error("App", "ERROR", "An error occurred"); ``` ## **๐Ÿ“Œ Logger with File Context** Hereโ€™s an example to get you started: ```javascript import {LoggerWithFile} from 'js-dlogger/loggerWrapper'; const Logger = LoggerWithFile("Login.jsx"); Logger.info("INIT", "Application started"); Logger.debug("DEBUG", "This is a debug message"); Logger.dLog("DATA", { key: "value" }); Logger.warn("WARNING", "This is a warning message"); Logger.error("ERROR", "An error occurred"); ``` ## **๐ŸŒŽ Environment-Based Logging** The logger dynamically determines the environment: - **React**: If globalThis.__APP_ENV__ is set, it will be used. - **React Native**: If logger.config.js is available, it loads the environment from there. - **Any js-framework** : Otherwise, it defaults to development. **Example logger.config.js:** ```javascript /** * Config file for {logger} * @return Object : ENV value * @alias : development | production * @development ~ for development environment * @production ~ release & disable debug logs * @author structlooper * */ export default { ENV: 'production', }; ``` ## **๐Ÿ›  Best Practices** **1๏ธโƒฃ Ensure the Config File Exists (If Required)** If your project needs logger.config.js, make sure to create it: ```javascript export default { ENV: 'production', }; ``` **2๏ธโƒฃ Use File-Based Logging for Easier Debugging** Instead of passing taq manually, use LoggerWithFile for consistency. ```javascript const Logger = LoggerWithFile("Login.jsx") ``` --- ## **โšก๏ธ Troubleshooting** | Issue | Solution | |------------------------------------|-------------------------------------------------------------------------| | Metro bundler error | Ensure `logger.config.js` exists or use the `try-catch` approach. | | Environment is always development | Check if `globalThis.__APP_ENV__` or `logger.config.js` is correctly set. | --- ## **๐Ÿ“œ License** This project is licensed under the MIT License. See the [LICENSE](https://github.com/structlooper/js-dlogger/blob/master/LICENSE) file for details. --- ## **Contributing** Contributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/structlooper/js-dlogger/issues). --- ## **๐Ÿ“ง Contact** For support, feedback, or contributions, reach out via GitHub: [structlooper](https://github.com/structlooper).