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
Markdown
# ๐ 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!**