added stack trace to some logging

This commit is contained in:
jackiettran
2025-12-25 18:41:42 -05:00
parent b02ec19d5c
commit 76e4039ba8
15 changed files with 307 additions and 173 deletions

View File

@@ -127,6 +127,7 @@ router.post(
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Failed to send verification email", {
error: emailError.message,
stack: emailError.stack,
userId: user.id,
email: user.email,
});
@@ -645,6 +646,7 @@ router.post(
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Failed to resend verification email", {
error: emailError.message,
stack: emailError.stack,
userId: user.id,
email: user.email,
});
@@ -819,6 +821,7 @@ router.post(
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Failed to send password reset email", {
error: emailError.message,
stack: emailError.stack,
userId: user.id,
email: user.email,
});
@@ -960,6 +963,7 @@ router.post(
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Failed to send password changed notification", {
error: emailError.message,
stack: emailError.stack,
userId: user.id,
email: user.email,
});

View File

@@ -57,6 +57,7 @@ router.post("/:rentalId", authenticateToken, async (req, res) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Error submitting condition check", {
error: error.message,
stack: error.stack,
rentalId: req.params.rentalId,
userId: req.user?.id,
});
@@ -85,6 +86,7 @@ router.get("/:rentalId", authenticateToken, async (req, res) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Error fetching condition checks", {
error: error.message,
stack: error.stack,
rentalId: req.params.rentalId,
});
@@ -112,6 +114,7 @@ router.get("/:rentalId/timeline", authenticateToken, async (req, res) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Error fetching condition check timeline", {
error: error.message,
stack: error.stack,
rentalId: req.params.rentalId,
});
@@ -139,6 +142,7 @@ router.get("/", authenticateToken, async (req, res) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Error fetching available checks", {
error: error.message,
stack: error.stack,
userId: req.user?.id,
});

View File

@@ -33,6 +33,7 @@ router.post('/', authenticateToken, sanitizeInput, validateFeedback, async (req,
} catch (emailError) {
reqLogger.error("Failed to send feedback confirmation email", {
error: emailError.message,
stack: emailError.stack,
userId: req.user.id,
feedbackId: feedback.id
});
@@ -45,6 +46,7 @@ router.post('/', authenticateToken, sanitizeInput, validateFeedback, async (req,
} catch (emailError) {
reqLogger.error("Failed to send feedback notification to admin", {
error: emailError.message,
stack: emailError.stack,
userId: req.user.id,
feedbackId: feedback.id
});

View File

@@ -311,6 +311,7 @@ router.post('/posts', authenticateToken, async (req, res, next) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Geocoding failed for item request", {
error: error.message,
stack: error.stack,
zipCode
});
// Continue without coordinates - post will still be created
@@ -450,6 +451,7 @@ router.post('/posts', authenticateToken, async (req, res, next) => {
} catch (emailError) {
logger.error("Failed to send item request notification", {
error: emailError.message,
stack: emailError.stack,
recipientId: user.id,
postId: post.id
});
@@ -1383,7 +1385,12 @@ router.delete('/admin/posts/:id', authenticateToken, requireAdmin, async (req, r
}
} catch (emailError) {
// Log but don't fail the deletion
console.error('Failed to send forum post deletion notification email:', emailError.message);
logger.error('Failed to send forum post deletion notification email', {
error: emailError.message,
stack: emailError.stack,
postId: post.id,
authorId: post.authorId
});
}
})();
@@ -1511,7 +1518,12 @@ router.delete('/admin/comments/:id', authenticateToken, requireAdmin, async (req
}
} catch (emailError) {
// Log but don't fail the deletion
console.error('Failed to send forum comment deletion notification email:', emailError.message);
logger.error('Failed to send forum comment deletion notification email', {
error: emailError.message,
stack: emailError.stack,
commentId: comment.id,
authorId: comment.authorId
});
}
})();

View File

@@ -372,10 +372,17 @@ router.post("/", authenticateToken, requireVerifiedEmail, async (req, res, next)
itemWithOwner.owner,
itemWithOwner
);
console.log(`First listing celebration email sent to owner ${req.user.id}`);
const reqLogger = logger.withRequestId(req.id);
reqLogger.info("First listing celebration email sent", { ownerId: req.user.id });
} catch (emailError) {
// Log but don't fail the item creation
console.error('Failed to send first listing celebration email:', emailError.message);
const reqLogger = logger.withRequestId(req.id);
reqLogger.error('Failed to send first listing celebration email', {
error: emailError.message,
stack: emailError.stack,
ownerId: req.user.id,
itemId: item.id
});
}
}
@@ -571,10 +578,15 @@ router.delete("/admin/:id", authenticateToken, requireAdmin, async (req, res, ne
item,
reason.trim()
);
console.log(`Item deletion notification email sent to owner ${item.ownerId}`);
logger.info("Item deletion notification email sent", { ownerId: item.ownerId, itemId: item.id });
} catch (emailError) {
// Log but don't fail the deletion
console.error('Failed to send item deletion notification email:', emailError.message);
logger.error('Failed to send item deletion notification email', {
error: emailError.message,
stack: emailError.stack,
ownerId: item.ownerId,
itemId: item.id
});
}
const reqLogger = logger.withRequestId(req.id);

View File

@@ -297,6 +297,7 @@ router.post('/', authenticateToken, async (req, res, next) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Failed to send message notification email", {
error: emailError.message,
stack: emailError.stack,
messageId: message.id,
receiverId: receiverId
});
@@ -436,6 +437,7 @@ router.get('/images/:filename',
const reqLogger = logger.withRequestId(req.id);
reqLogger.error('Image serve failed', {
error: error.message,
stack: error.stack,
filename: req.params.filename
});
res.status(500).json({ error: 'Failed to load image' });

View File

@@ -466,6 +466,7 @@ router.put("/:id/status", authenticateToken, async (req, res) => {
"Failed to send rental approval confirmation email to owner",
{
error: emailError.message,
stack: emailError.stack,
rentalId: updatedRental.id,
ownerId: updatedRental.ownerId,
}
@@ -505,6 +506,7 @@ router.put("/:id/status", authenticateToken, async (req, res) => {
"Failed to send rental confirmation email to renter",
{
error: emailError.message,
stack: emailError.stack,
rentalId: updatedRental.id,
renterId: updatedRental.renterId,
}
@@ -568,6 +570,7 @@ router.put("/:id/status", authenticateToken, async (req, res) => {
"Failed to send rental approval confirmation email to owner",
{
error: emailError.message,
stack: emailError.stack,
rentalId: updatedRental.id,
ownerId: updatedRental.ownerId,
}
@@ -607,6 +610,7 @@ router.put("/:id/status", authenticateToken, async (req, res) => {
"Failed to send rental confirmation email to renter",
{
error: emailError.message,
stack: emailError.stack,
rentalId: updatedRental.id,
renterId: updatedRental.renterId,
}
@@ -1112,6 +1116,7 @@ router.post("/:id/cancel", authenticateToken, async (req, res, next) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Failed to send cancellation emails", {
error: emailError.message,
stack: emailError.stack,
rentalId: updatedRental.id,
cancelledBy: updatedRental.cancelledBy,
});
@@ -1206,6 +1211,7 @@ router.post("/:id/mark-return", authenticateToken, async (req, res, next) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Failed to send rental completion emails", {
error: emailError.message,
stack: emailError.stack,
rentalId,
});
}
@@ -1294,6 +1300,7 @@ router.post("/:id/mark-return", authenticateToken, async (req, res, next) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Error marking return status", {
error: error.message,
stack: error.stack,
rentalId: req.params.id,
userId: req.user.id,
});
@@ -1376,6 +1383,7 @@ router.post("/:id/report-damage", authenticateToken, async (req, res, next) => {
const reqLogger = logger.withRequestId(req.id);
reqLogger.error("Error reporting damage", {
error: error.message,
stack: error.stack,
rentalId: req.params.id,
userId: req.user.id,
});