diff --git a/packages/wrangler/src/dev/miniflare.ts b/packages/wrangler/src/dev/miniflare.ts index 4e911161f7b17..3e8412c23942a 100644 --- a/packages/wrangler/src/dev/miniflare.ts +++ b/packages/wrangler/src/dev/miniflare.ts @@ -450,7 +450,8 @@ function handleRuntimeStdio(stdout: Readable, stderr: Readable) { `Address already in use (${address}). Please check that you are not already running a server on this address or specify a different port with --port.` ); - return; + // even though we've intercepted the chunk and logged a better error to stderr + // fallthrough to log the original chunk to the debug log file for observability } // IGNORABLE: diff --git a/packages/wrangler/src/utils/debug-log-file.ts b/packages/wrangler/src/utils/debug-log-file.ts index ea95833974e9d..ba309c4f5ea04 100644 --- a/packages/wrangler/src/utils/debug-log-file.ts +++ b/packages/wrangler/src/utils/debug-log-file.ts @@ -35,7 +35,7 @@ async function ensureDirectoryExists(filepath: string) { await mkdir(dirpath, { recursive: true }); } -export const debugLogFilepath = path.resolve(getDebugFilepath()); +export const debugLogFilepath = getDebugFilepath(); const mutex = new Mutex(); let hasLoggedLocation = false; @@ -54,25 +54,27 @@ ${message} --- `; + if (!hasLoggedLocation) { + hasLoggedLocation = true; + const relativeFilepath = path.relative(process.cwd(), debugLogFilepath); + console.info(`🐛 Writing debug logs to "${relativeFilepath}"`); + onExit(() => { + console.info(`🐛 Debug logs were written to "${relativeFilepath}"`); + }); + } + await mutex.runWith(async () => { try { await ensureDirectoryExists(debugLogFilepath); await appendFile(debugLogFilepath, entry); } catch (err) { - if (hasLoggedError) return; - hasLoggedError = true; - console.error(`Failed to write to debug log file`, err); - console.error(`Would have written:`, entry); + if (!hasLoggedError) { + hasLoggedError = true; + console.error(`Failed to write to debug log file`, err); + console.error(`Would have written:`, entry); + } } }); - - if (hasLoggedLocation) return; - hasLoggedLocation = true; - const relativeFilepath = path.relative(process.cwd(), debugLogFilepath); - console.info(`🐛 Writing debug logs to "${relativeFilepath}"`); - onExit(() => { - console.info(`🐛 Debug logs were written to "${relativeFilepath}"`); - }); } /**