use interpolated string or dictionary parameter in logs

This commit is contained in:
Hongbo Wu
2023-09-26 12:46:58 +08:00
parent 4d846c520b
commit efdbc4f345
18 changed files with 39 additions and 47 deletions

View File

@ -134,12 +134,11 @@ export async function handleGoogleWebAuth(
const userId = user?.id
if (!userId || !user?.profile) {
logger.info(
'user or profile does not exist:',
logger.info('user or profile does not exist:', {
sourceUserId,
'GOOGLE',
email
)
source: 'GOOGLE',
email,
})
// User doesn't exist yet, so we return a pending user token
// if user's profile doesn't exist, also send back to the profile creation
const pendingUserAuth = await createPendingUserToken({

View File

@ -50,12 +50,7 @@ export function pageRouter() {
const { url, clientRequestId } = req.query
const contentType = req.headers['content-type']
logger.info(
'contentType',
contentType,
'url',
url,
'clientRequestId',
clientRequestId
`creating page from pdf ${url} ${contentType} ${clientRequestId}`
)
if (
@ -63,12 +58,11 @@ export function pageRouter() {
!isString(contentType) ||
!isString(clientRequestId)
) {
logger.info(
'creating page from pdf failed',
logger.info('creating page from pdf failed', {
url,
contentType,
clientRequestId
)
clientRequestId,
})
return res.status(400).send({ errorCode: 'BAD_DATA' })
}
@ -123,7 +117,7 @@ export function pageRouter() {
)
}
logger.info('redirecting to signed URL', signedUrl)
logger.info(`redirecting to signed URL: ${signedUrl}`)
return res.redirect(signedUrl)
})

View File

@ -26,9 +26,9 @@ export function contentServiceRouter() {
const router = express.Router()
router.post('/search', async (req, res) => {
logger.info('search req', req.query, req.body)
logger.info('search req', req)
const { message: msgStr, expired } = readPushSubscription(req)
logger.info('read pubsub message', msgStr, 'has expired', expired)
logger.info('read pubsub message', { msgStr, expired })
if (!msgStr) {
res.status(200).send('Bad Request')
@ -77,7 +77,7 @@ export function contentServiceRouter() {
uploadFile.user.id
)
if (!libraryItem) {
logger.info('No upload file found for id:', fileId)
logger.info(`No upload file found for id: ${fileId}`)
res.status(404).send('Bad Request')
return
}
@ -109,12 +109,11 @@ export function contentServiceRouter() {
itemToUpdate,
uploadFile.user.id
)
logger.info(
'Updating library item text',
libraryItem.id,
logger.info('Updating library item text', {
id: libraryItem.id,
result,
msg.content.substring(0, 20)
)
content: msg.content.substring(0, 20),
})
res.status(200).send(msg)
})

View File

@ -15,9 +15,9 @@ export function linkServiceRouter() {
const router = express.Router()
router.post('/create', async (req, res) => {
logger.info('create link req', req.query, req.body)
logger.info('create link req', req)
const { message: msgStr, expired } = readPushSubscription(req)
logger.info('read pubsub message', msgStr, 'has expired', expired)
logger.info('read pubsub message', { msgStr, expired })
if (!msgStr) {
res.status(400).send('Bad Request')

View File

@ -38,7 +38,7 @@ export function newsletterServiceRouter() {
logger.info('setConfirmationCode')
const { message, expired } = readPushSubscription(req)
logger.info('pubsub message:', message, 'expired:', expired)
logger.info('pubsub message', { message, expired })
if (!message) {
res.status(400).send('Bad Request')
@ -46,7 +46,7 @@ export function newsletterServiceRouter() {
}
if (expired) {
logger.info('discards expired message:', message)
logger.info(`discards expired message: ${message}`)
res.status(200).send('Expired')
return
}
@ -66,7 +66,7 @@ export function newsletterServiceRouter() {
data.confirmationCode
)
if (!result) {
logger.info('Newsletter email not found', data.emailAddress)
logger.info(`Newsletter email not found: ${data.emailAddress}`)
res.status(200).send('Not Found')
return
}

View File

@ -15,7 +15,7 @@ export function rssFeedRouter() {
try {
const { message: msgStr, expired } = readPushSubscription(req)
logger.info('read pubsub message', msgStr, 'has expired', expired)
logger.info(`read pubsub message`, { msgStr, expired })
if (expired) {
logger.info('discarding expired message')

View File

@ -34,7 +34,7 @@ export function userRouter() {
subject?: string
}
if (!subject || !body || !from) {
logger.error('Bad Request', subject, body, from)
logger.error('Bad Request', { subject, body, from })
res.status(400).send('Bad Request')
return
}

View File

@ -101,7 +101,7 @@ export const createPageSaveRequest = async ({
// if user is not specified, get it from the database
const user = await userRepository.findById(userId)
if (!user) {
logger.info('User not found', userId)
logger.info(`User not found: ${userId}`)
return Promise.reject({
errorCode: CreateArticleSavingRequestErrorCode.BadData,
})

View File

@ -173,7 +173,7 @@ const validateInvite = async (
entityManager
)
if (numMembers >= invite.maxMembers) {
logger.info('rejecting invite, too many users', invite, numMembers)
logger.info('rejecting invite, too many users', { invite, numMembers })
return false
}
return true

View File

@ -34,7 +34,7 @@ export const saveNewsletter = async (
})
if (!data.content) {
logger.info('newsletter not created, no content:', data.email)
logger.info(`newsletter not created, no content: ${data.email}`)
return false
}
@ -51,7 +51,7 @@ export const saveNewsletter = async (
}
const savedLibraryItem = await saveEmail(input)
if (!savedLibraryItem) {
logger.info('newsletter not created:', input.title)
logger.info(`newsletter not created: ${input.title}`)
return false
}

View File

@ -51,7 +51,7 @@ const sendUnsubscribeEmail = async (
})
if (!sent) {
logger.info('Failed to send unsubscribe email', unsubscribeMailTo)
logger.info(`Failed to send unsubscribe email: ${unsubscribeMailTo}`)
return false
}
@ -71,7 +71,7 @@ const sendUnsubscribeHttpRequest = async (url: string): Promise<boolean> => {
return true
} catch (error) {
if (axios.isAxiosError(error)) {
logger.info('Failed to send unsubscribe http request', error.message)
logger.info(`Failed to send unsubscribe http request: ${error.message}`)
} else {
logger.info('Failed to send unsubscribe http request', error)
}

View File

@ -264,7 +264,7 @@ export const enqueueParseRequest = async ({
setTimeout(() => {
axios.post(env.queue.contentFetchUrl, payload).catch((error) => {
logError(error)
logger.warning(
logger.error(
`Error occurred while requesting local puppeteer-parse function\nPlease, ensure your function is set up properly and running using "yarn start" from the "/pkg/gcf/puppeteer-parse" folder`
)
})

View File

@ -294,7 +294,7 @@ export const validatedDate = (
}
return new Date(date)
} catch (e) {
logger.error('error validating date', date, e)
logger.error('error validating date', { date, error: e })
return undefined
}
}

View File

@ -29,7 +29,7 @@ export class CustomTypeOrmLogger
private logger: Logger
constructor(options?: TypeOrmLoggerOptions) {
super(options)
super(false)
this.logger = buildLogger('typeorm')
}

View File

@ -183,7 +183,7 @@ const getReadabilityResult = async (
return article
}
} catch (error) {
logger.info('parsing error for url', url, error)
logger.info('parsing error for url', { url, error })
}
}
@ -223,7 +223,7 @@ export const parsePreparedContent = async (
pageInfo.contentType &&
!ALLOWED_CONTENT_TYPES.includes(pageInfo.contentType)
) {
logger.info('Not allowed content type', pageInfo.contentType)
logger.info(`Not allowed content type: ${pageInfo.contentType}`)
return {
canonicalUrl: url,
parsedContent: null,
@ -401,7 +401,7 @@ const getJSONLdLinkMetadata = async (
return result
} catch (error) {
logger.warning(`Unable to get JSONLD link of the article`, { error })
logger.error(`Unable to get JSONLD link of the article`, error)
return result
}
}
@ -689,7 +689,7 @@ export const getDistillerResult = async (
const exp = Math.floor(Date.now() / 1000) + 60 * 60 // 1 hour
const auth = (await signToken({ uid, exp }, env.server.jwtSecret)) as string
logger.info('Parsing by distiller', url)
logger.info(`Parsing by distiller: ${url}`)
const response = await axios.post<string>(url, html, {
headers: {
Authorization: auth,

View File

@ -26,7 +26,7 @@ export const sendEmail = async (msg: MailDataRequired): Promise<boolean> => {
const client = new MailService()
if (!process.env.SENDGRID_MSGS_API_KEY) {
if (env.dev.isLocal) {
logger.warning('SendGrid API key not set.\nSending email:', msg)
logger.error('SendGrid API key not set.\nSending email:', msg)
return true
}

View File

@ -76,7 +76,7 @@ export const sendBatchPushNotifications = async (
): Promise<BatchResponse | undefined> => {
try {
const res = await getMessaging().sendAll(messages)
logger.info('success count: ', res.successCount)
logger.info(`success count: ${res.successCount}`)
return res
} catch (err) {

View File

@ -77,7 +77,7 @@ export const generateDownloadSignedUrl = async (
.bucket(bucketName)
.file(filePathName)
.getSignedUrl(options)
logger.info('generating download signed url', url)
logger.info(`generating download signed url: ${url}`)
return url
}