UNPKG

logstack-zee

Version:

Complete Node.js logging solution with 6 integration methods, S3 bidirectional operations, advanced analytics, and multi-cloud storage support for enterprise-scale applications.

335 lines (250 loc) โ€ข 7.77 kB
# ๐Ÿš€ Complete Node.js Implementation Guide ## ๐Ÿ“‹ Quick Summary You now have complete Node.js implementation examples for the logstack with **custom collection names** and **organized output directories**. ## ๐ŸŽฏ Ready-to-Use Examples ### 1. **Simple Node.js Example** **File**: `examples/simple-nodejs-example.js` - โœ… Working CommonJS implementation - โœ… Custom collection names (avoids database conflicts) - โœ… Organized output directory (clean project structure) - โœ… Ready to copy and modify for your project ### 2. **Complete Implementation Guide** **File**: `NODE_JS_IMPLEMENTATION.md` - โœ… CommonJS and ES Modules examples - โœ… Express.js integration - โœ… Production deployment setup - โœ… Environment configuration - โœ… Multi-service setup examples ### 3. **Step-by-Step Checklist** **File**: `IMPLEMENTATION_CHECKLIST.md` - โœ… Phase-by-phase implementation - โœ… Testing and validation steps - โœ… Troubleshooting guide --- ## ๐Ÿš€ Quick Start (Copy-Paste Ready) ### Basic Node.js Implementation ```javascript const { init, createDailyJobs, processSpecificHour, } = require("logstack"); const config = { dbUri: "mongodb://localhost:27017/myapp", uploadProvider: "local", fileFormat: "json", // โœจ Organized files (not in project root) outputDirectory: "api-logs", // โœจ Custom collections (no conflicts) collections: { jobsCollectionName: "myapp_jobs", logsCollectionName: "myapp_logs", }, logging: { level: "info", enableConsole: true, }, }; async function startCronService() { try { await init(config); console.log("โœ… Cron service initialized"); console.log("๐Ÿ“ Files saved to: ./api-logs/"); console.log("๐Ÿ—ƒ๏ธ Collections: myapp_jobs, myapp_logs"); } catch (error) { console.error("โŒ Failed to initialize:", error); } } startCronService(); ``` ### Express.js Integration ```javascript const express = require("express"); const { init, setupRequestLogging } = require("logstack"); const app = express(); const cronConfig = { dbUri: "mongodb://localhost:27017/myapp", uploadProvider: "local", outputDirectory: "api-logs", collections: { jobsCollectionName: "api_jobs", logsCollectionName: "api_logs", }, }; async function startServer() { // Initialize cron service await init(cronConfig); // Add automatic request logging app.use(setupRequestLogging(cronConfig)); // Your API routes app.get("/api/users", (req, res) => { res.json({ users: [] }); // Automatically logged }); app.listen(3000, () => { console.log("๐Ÿš€ Server running on port 3000"); console.log("๐Ÿ“ API logs saved to: ./api-logs/"); }); } startServer(); ``` --- ## ๐ŸŽฏ Key Features Implementation ### โœ… Custom Collection Names (Solves Database Conflicts) ```javascript // Problem: Multiple services using same database // Solution: Custom collection names const userServiceConfig = { collections: { jobsCollectionName: "user_service_jobs", logsCollectionName: "user_service_logs", }, }; const orderServiceConfig = { collections: { jobsCollectionName: "order_service_jobs", logsCollectionName: "order_service_logs", }, }; ``` ### โœ… Organized Output Directory (Clean Project Structure) ```javascript // Problem: Date folders cluttering project root // Solution: Organized output directory const config = { outputDirectory: "api-logs", // All files go here // Before: ./2025-08-25/14-15.json (messy root) // After: ./api-logs/2025-08-25/14-15.json (organized) }; ``` --- ## ๐Ÿ“ฆ Installation & Setup ### Step 1: Install Package ```bash npm install logstack ``` ### Step 2: Basic Setup Create `cron-service.js`: ```javascript const { init } = require("logstack"); const config = { dbUri: "mongodb://localhost:27017/YOUR_APP_NAME", uploadProvider: "local", outputDirectory: "YOUR_APP_NAME-logs", collections: { jobsCollectionName: "YOUR_APP_NAME_jobs", logsCollectionName: "YOUR_APP_NAME_logs", }, }; async function startCronService() { await init(config); console.log("โœ… Cron service ready!"); } startCronService(); ``` ### Step 3: Run Your App ```bash node cron-service.js ``` --- ## ๐ŸŒ Environment-Based Configuration ### Development Setup ```javascript // development.js const devConfig = { dbUri: "mongodb://localhost:27017/myapp_dev", uploadProvider: "local", outputDirectory: "dev-logs", collections: { jobsCollectionName: "dev_jobs", logsCollectionName: "dev_logs", }, }; ``` ### Production Setup ```javascript // production.js const prodConfig = { dbUri: process.env.PROD_DB_URI, uploadProvider: "s3", outputDirectory: "production-logs", collections: { jobsCollectionName: "prod_jobs", logsCollectionName: "prod_logs", }, s3: { accessKeyId: process.env.AWS_ACCESS_KEY_ID, secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, region: "us-east-1", bucket: "company-logs", }, }; ``` --- ## ๐Ÿงช Testing Your Implementation ```javascript const { init, createDailyJobs, processSpecificHour, } = require("logstack"); async function testImplementation() { const testConfig = { dbUri: "mongodb://localhost:27017/test", uploadProvider: "local", outputDirectory: "test-logs", collections: { jobsCollectionName: "test_jobs", logsCollectionName: "test_logs", }, }; try { // Test initialization await init(testConfig); console.log("โœ… Service initialized"); // Test job creation const job = await createDailyJobs("2025-08-25", testConfig); console.log(`โœ… Created ${job.hours.length} hour slots`); // Test processing await processSpecificHour("2025-08-25", 14, testConfig); console.log("โœ… Processed hour 14-15"); console.log("๐Ÿ“ Check: ./test-logs/2025-08-25/14-15.json"); console.log("๐ŸŽ‰ All tests passed!"); } catch (error) { console.error("โŒ Test failed:", error); } } testImplementation(); ``` --- ## ๐ŸŽฏ Benefits You Get ### โœ… **No Database Conflicts** - Each service uses unique collection names - Multiple instances can share the same database - Environment separation (dev/staging/prod) ### โœ… **Clean Project Structure** - All log files organized in dedicated directories - No date folders cluttering your project root - Easy to find and manage generated files ### โœ… **Enterprise Ready** - Multiple service support - Environment-based configurations - Cloud storage integration - Automatic cron job scheduling ### โœ… **Easy Integration** - Works with any Node.js project - Express.js middleware included - CommonJS and ES modules support - Full TypeScript definitions --- ## ๐Ÿ“š Complete Documentation 1. **[NODE_JS_IMPLEMENTATION.md](./NODE_JS_IMPLEMENTATION.md)** - Complete implementation guide 2. **[IMPLEMENTATION_CHECKLIST.md](./IMPLEMENTATION_CHECKLIST.md)** - Step-by-step checklist 3. **[examples/simple-nodejs-example.js](./examples/simple-nodejs-example.js)** - Ready-to-run example 4. **[COMPLETE_STEP_BY_STEP_GUIDE.md](./COMPLETE_STEP_BY_STEP_GUIDE.md)** - Comprehensive usage guide --- ## ๐Ÿš€ Next Steps 1. **Copy** the configuration from examples above 2. **Modify** collection names and output directory for your app 3. **Test** with the provided test script 4. **Deploy** using environment-based configuration **๐ŸŽ‰ Your Node.js logstack implementation is ready for production!**