Skip to content

Commit bbfd5fe

Browse files
authored
Migrate src/languages console statements to structured logger (#61076)
1 parent 94579ff commit bbfd5fe

4 files changed

Lines changed: 25 additions & 15 deletions

File tree

eslint.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,6 @@ export default [
181181
'src/events/components/**/*.{ts,js}',
182182
'src/fixtures/**/*.{ts,js}',
183183
'src/journeys/**/*.{ts,js}',
184-
'src/languages/**/*.{ts,js}',
185-
'src/links/**/*.{ts,js}',
186184
'src/metrics/**/*.{ts,js}',
187185
'src/observability/lib/handle-package-not-found.ts',
188186
'src/search/**/*.{ts,js}',
@@ -200,6 +198,8 @@ export default [
200198
'src/workflows/**/*.{ts,js}',
201199
'src/content-linter/**/*.{ts,js}',
202200
'**/*.{tsx,jsx}',
201+
// Client-side module that cannot use the server-only structured logger
202+
'src/languages/lib/translation-utils.ts',
203203
// CLI help script — chalk-colored terminal output, not application logging
204204
'src/rest/docs.ts',
205205
],

src/languages/lib/get-alert-titles.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import fs from 'fs/promises'
22
import path from 'path'
33
import yaml from 'js-yaml'
4+
import { createLogger } from '@/observability/logger'
45
import languages from './languages-server'
56

7+
const logger = createLogger(import.meta.url)
8+
69
interface AlertTitles {
710
[key: string]: string
811
}
@@ -26,7 +29,7 @@ export async function getAlertTitles(page: { languageCode: string }) {
2629
file = await fs.readFile(path.join(dir, `data/ui.yml`), 'utf-8')
2730
yamlFile = yaml.load(file) as UiYaml
2831
} catch (e) {
29-
console.warn(`Failed to load translated alert titles`, e)
32+
logger.warn('Failed to load translated alert titles', { error: e, languageCode })
3033
}
3134
}
3235
if (!file || !yamlFile.alerts) {

src/links/lib/extract-links.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@
88
import fs from 'fs'
99
import path from 'path'
1010

11+
import { createLogger } from '@/observability/logger'
1112
import { allVersions } from '@/versions/lib/all-versions'
1213
import { latestStable } from '@/versions/lib/enterprise-server-releases'
1314
import { getDataByLanguage } from '@/data-directory/lib/get-data'
1415
import type { Context, Page } from '@/types'
1516

17+
const logger = createLogger(import.meta.url)
18+
1619
// Link patterns for Markdown
1720
const INTERNAL_LINK_PATTERN = /\]\(\/[^)]+\)/g
1821
const AUTOTITLE_LINK_PATTERN = /\[AUTOTITLE\]\(([^)]+)\)/g
@@ -329,7 +332,7 @@ export async function extractLinksWithLiquid(
329332
} catch (error) {
330333
// If Liquid rendering fails, fall back to raw extraction
331334
// This can happen with malformed templates
332-
console.warn('Liquid rendering failed, falling back to raw extraction:', error)
335+
logger.warn('Liquid rendering failed, falling back to raw extraction', { error })
333336
return extractLinksFromMarkdown(content)
334337
}
335338
}
@@ -347,7 +350,7 @@ export async function renderAndExtractLinks(
347350
const renderedMarkdown = await renderLiquid(content, context)
348351
return { renderedMarkdown, result: extractLinksFromMarkdown(renderedMarkdown) }
349352
} catch (error) {
350-
console.warn('Liquid rendering failed, falling back to raw extraction:', error)
353+
logger.warn('Liquid rendering failed, falling back to raw extraction', { error })
351354
return { renderedMarkdown: content, result: extractLinksFromMarkdown(content) }
352355
}
353356
}

src/links/lib/update-internal-links.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { toMarkdown } from 'mdast-util-to-markdown'
66
import yaml from 'js-yaml'
77
import { type Node, type Nodes, type Definition, type Link } from 'mdast'
88

9+
import { createLogger } from '@/observability/logger'
910
import frontmatter from '@/frame/lib/read-frontmatter'
1011
import {
1112
getPathWithLanguage,
@@ -20,6 +21,8 @@ import getRedirect, { splitPathByLanguage } from '@/redirects/lib/get-redirect'
2021
import nonEnterpriseDefaultVersion from '@/versions/lib/non-enterprise-default-version'
2122
import { deprecated } from '@/versions/lib/enterprise-server-releases'
2223

24+
const logger = createLogger(import.meta.url)
25+
2326
// That magical string that can be turned into the actual title when
2427
// we, at runtime, render out the links
2528
const AUTOTITLE = 'AUTOTITLE'
@@ -55,7 +58,7 @@ export async function updateInternalLinks(files: string[], options = {}) {
5558
...(await updateFile(file, context, opts)),
5659
})
5760
} catch (err) {
58-
console.warn(`The file it tried to process on exception was: ${file}`)
61+
logger.warn('File processing failed', { file })
5962
throw err
6063
}
6164
}
@@ -149,7 +152,7 @@ async function updateFile(
149152
// bubble up to the CLI. And the CLI will mention which file it
150153
// was processing when it failed. But we have a valuable piece of
151154
// information here about which frontmatter key it was that failed.
152-
console.warn(`The frontmatter key it processed and failed was '${key}'`)
155+
logger.warn('Frontmatter key processing failed', { key })
153156
throw error
154157
}
155158
}
@@ -281,9 +284,10 @@ async function updateFile(
281284
newContent = newContent.replace(asMarkdown, newAsMarkdown)
282285
}
283286
} else if (opts.verbose) {
284-
console.warn(
285-
`Unable to find link as Markdown ('${asMarkdown}') in the source content (${file})`,
286-
)
287+
logger.warn('Unable to find link as Markdown in the source content', {
288+
asMarkdown,
289+
file,
290+
})
287291
}
288292
})
289293

@@ -394,7 +398,7 @@ function getNewFrontmatterLinkList(
394398
const better = []
395399
for (const entry of list) {
396400
if (/{%\s*else\s*%}/.test(entry)) {
397-
console.warn(`Skipping frontmatter link with {% else %} in it: ${entry}. (file: ${file})`)
401+
logger.warn('Skipping frontmatter link with {% else %} in it', { entry, file })
398402
better.push(entry)
399403
continue
400404
}
@@ -419,7 +423,7 @@ function getNewFrontmatterLinkList(
419423
if (opts.strict) {
420424
throw new Error(msg)
421425
}
422-
console.warn(`WARNING: ${msg}`)
426+
logger.warn(msg, { file, pure, lineNumber })
423427
better.push(entry)
424428
} else {
425429
// Perhaps it just redirected to a specific version
@@ -512,7 +516,7 @@ function getNewHref(
512516
if (opts.strict) {
513517
throw new Error(msg)
514518
} else {
515-
console.warn(`WARNING: ${msg}`)
519+
logger.warn(msg, { file, href: newHref })
516520
return
517521
}
518522
}
@@ -530,7 +534,7 @@ function getNewHref(
530534
if (opts.strict) {
531535
throw new Error(msg)
532536
} else {
533-
console.warn(`WARNING: ${msg}`)
537+
logger.warn(msg, { file, href })
534538
return
535539
}
536540
}
@@ -569,7 +573,7 @@ function getNewHref(
569573
if (opts.strict) {
570574
throw new Error(msg)
571575
} else {
572-
console.warn(msg)
576+
logger.warn(msg, { file })
573577
return
574578
}
575579
} else if (withoutLanguage.startsWith('/enterprise-server@latest')) {

0 commit comments

Comments
 (0)