backend logging

This commit is contained in:
jackiettran
2025-09-22 18:38:51 -04:00
parent 6199609a4d
commit 3e76769a3e
17 changed files with 1225 additions and 110 deletions

View File

@@ -12,6 +12,8 @@ const path = require("path");
const helmet = require("helmet");
const { sequelize } = require("./models"); // Import from models/index.js to ensure associations are loaded
const { cookieParser } = require("./middleware/csrf");
const logger = require("./utils/logger");
const morgan = require("morgan");
const authRoutes = require("./routes/auth");
const userRoutes = require("./routes/users");
@@ -34,6 +36,8 @@ const {
sanitizeError,
} = require("./middleware/security");
const { generalLimiter } = require("./middleware/rateLimiter");
const errorLogger = require("./middleware/errorLogger");
const apiLogger = require("./middleware/apiLogger");
// Apply security middleware
app.use(enforceHTTPS);
@@ -60,6 +64,12 @@ app.use(
// Cookie parser for CSRF
app.use(cookieParser);
// HTTP request logging
app.use(morgan('combined', { stream: logger.stream }));
// API request/response logging
app.use("/api/", apiLogger);
// General rate limiting for all routes
app.use("/api/", generalLimiter);
@@ -107,6 +117,7 @@ app.get("/", (req, res) => {
});
// Error handling middleware (must be last)
app.use(errorLogger);
app.use(sanitizeError);
const PORT = process.env.PORT || 5000;
@@ -114,15 +125,16 @@ const PORT = process.env.PORT || 5000;
sequelize
.sync({ alter: true })
.then(() => {
console.log("Database synced");
logger.info("Database synced successfully");
// Start the payout processor
const payoutJobs = PayoutProcessor.startScheduledPayouts();
logger.info("Payout processor started");
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
logger.info(`Server is running on port ${PORT}`, { port: PORT, environment: env });
});
})
.catch((err) => {
console.error("Unable to sync database:", err);
logger.error("Unable to sync database", { error: err.message, stack: err.stack });
});