feat: Normalized server logging (#2567)
* feat: Normalize logging * Remove scattered console.error + Sentry.captureException * Remove mention of debug * cleanup dev output * Edge cases, docs * Refactor: Move logger, metrics, sentry under 'logging' folder. Trying to reduce the amount of things under generic 'utils' * cleanup, last few console calls
This commit is contained in:
@ -1,6 +1,4 @@
|
||||
// @flow
|
||||
import * as Sentry from "@sentry/node";
|
||||
import debug from "debug";
|
||||
import nodemailer from "nodemailer";
|
||||
import Oy from "oy-vey";
|
||||
import * as React from "react";
|
||||
@ -31,9 +29,9 @@ import {
|
||||
import { SigninEmail, signinEmailText } from "./emails/SigninEmail";
|
||||
import { WelcomeEmail, welcomeEmailText } from "./emails/WelcomeEmail";
|
||||
import { baseStyles } from "./emails/components/EmailLayout";
|
||||
import Logger from "./logging/logger";
|
||||
import { emailsQueue } from "./queues";
|
||||
|
||||
const log = debug("emails");
|
||||
const useTestEmailService =
|
||||
process.env.NODE_ENV === "development" && !process.env.SMTP_USERNAME;
|
||||
|
||||
@ -101,7 +99,10 @@ export class Mailer {
|
||||
}
|
||||
|
||||
if (useTestEmailService) {
|
||||
log("SMTP_USERNAME not provided, generating test account…");
|
||||
Logger.info(
|
||||
"email",
|
||||
"SMTP_USERNAME not provided, generating test account…"
|
||||
);
|
||||
|
||||
try {
|
||||
let testAccount = await nodemailer.createTestAccount();
|
||||
@ -118,7 +119,10 @@ export class Mailer {
|
||||
|
||||
this.transporter = nodemailer.createTransport(smtpConfig);
|
||||
} catch (err) {
|
||||
log(`Could not generate test account: ${err.message}`);
|
||||
Logger.error(
|
||||
"Couldn't generate a test account with ethereal.email",
|
||||
err
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -134,7 +138,7 @@ export class Mailer {
|
||||
});
|
||||
|
||||
try {
|
||||
log(`Sending email "${data.title}" to ${data.to}`);
|
||||
Logger.info("email", `Sending email "${data.title}" to ${data.to}`);
|
||||
const info = await transporter.sendMail({
|
||||
from: process.env.SMTP_FROM_EMAIL,
|
||||
replyTo: process.env.SMTP_REPLY_EMAIL || process.env.SMTP_FROM_EMAIL,
|
||||
@ -145,12 +149,13 @@ export class Mailer {
|
||||
});
|
||||
|
||||
if (useTestEmailService) {
|
||||
log("Email Preview URL: %s", nodemailer.getTestMessageUrl(info));
|
||||
Logger.info(
|
||||
"email",
|
||||
`Preview Url: ${nodemailer.getTestMessageUrl(info)}`
|
||||
);
|
||||
}
|
||||
} catch (err) {
|
||||
if (process.env.SENTRY_DSN) {
|
||||
Sentry.captureException(err);
|
||||
}
|
||||
Logger.error(`Error sending email to ${data.to}`, err);
|
||||
throw err; // Re-throw for queue to re-try
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user