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
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 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.