2.0.0 โ€ข Published 4 months ago

js-dlogger v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

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.


Installation

Install the package via npm:

npm install js-dlogger

or

yarn add js-dlogger

Usage :

โœ… Basic Usage

Hereโ€™s an example to get you started:

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:

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:

/**
 * 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:

export default {
  ENV: 'production', 
};

2๏ธโƒฃ Use File-Based Logging for Easier Debugging

Instead of passing taq manually, use LoggerWithFile for consistency.

const Logger =  LoggerWithFile("Login.jsx")

โšก๏ธ Troubleshooting

IssueSolution
Metro bundler errorEnsure logger.config.js exists or use the try-catch approach.
Environment is always developmentCheck if globalThis.__APP_ENV__ or logger.config.js is correctly set.

๐Ÿ“œ License

This project is licensed under the MIT License. See the LICENSE file for details.


Contributing

Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.


๐Ÿ“ง Contact

For support, feedback, or contributions, reach out via GitHub: structlooper.