Skip to content

Commit

Permalink
fix(logger): truncate log over 5000 characters long (#16581)
Browse files Browse the repository at this point in the history
  • Loading branch information
chaejunlee authored May 8, 2024
1 parent c3b3d3c commit b0b839a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
20 changes: 19 additions & 1 deletion packages/vite/src/node/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import readline from 'node:readline'
import colors from 'picocolors'
import type { RollupError } from 'rollup'
import type { ResolvedServerUrls } from './server'
import { splitRE } from './utils'

export type LogType = 'error' | 'warn' | 'info'
export type LogLevel = LogType | 'silent'
Expand Down Expand Up @@ -63,6 +64,8 @@ function getTimeFormatter() {
return timeFormatter
}

const MAX_LOG_CHAR = 5000

export function createLogger(
level: LogLevel = 'info',
options: LoggerOptions = {},
Expand All @@ -78,7 +81,22 @@ export function createLogger(
allowClearScreen && process.stdout.isTTY && !process.env.CI
const clear = canClearScreen ? clearScreen : () => {}

function format(type: LogType, msg: string, options: LogErrorOptions = {}) {
function preventOverflow(msg: string) {
if (msg.length > MAX_LOG_CHAR) {
const shorten = msg.slice(0, MAX_LOG_CHAR)
const lines = msg.slice(MAX_LOG_CHAR).match(splitRE)?.length || 0

return `${shorten}\n... and ${lines} lines more`
}
return msg
}

function format(
type: LogType,
rawMsg: string,
options: LogErrorOptions = {},
) {
const msg = preventOverflow(rawMsg)
if (options.timestamp) {
const tag =
type === 'info'
Expand Down
2 changes: 1 addition & 1 deletion packages/vite/src/node/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ export function isFilePathESM(
}
}

const splitRE = /\r?\n/
export const splitRE = /\r?\n/g

const range: number = 2

Expand Down

0 comments on commit b0b839a

Please sign in to comment.