padEnd() 可统一日志等级宽度并右对齐,如 "INFO".padEnd(6) → "INFO ",确保时间与消息列垂直对齐;配合模板字符串和自定义填充符(如点号)可增强可读性与调试效率。
padEnd()
能让日志等级标识(如
、
、
)统一宽度、右对齐文本内容,从而在控制台中形成视觉上整齐的列式日志输出。
设定固定宽度并填充空格
日志等级通常长度不一("DEBUG" 5字符,"WARN" 4字符,"ERROR" 5字符),直接拼接会导致后续消息起始位置错乱。用
可将所有等级扩展为 6 字符宽(不足补空格),确保后续内容垂直对齐:
→
→
→
(注意末尾一个空格)
配合 console.log 实现结构化输出
把 padEnd 处理后的等级与时间、消息组合,就能生成可读性强的日志行:
所有
保证方括号内始终占 6 字符,避免因等级长度差异导致时间列或消息列“抖动”。
支持自定义填充字符(增强可读性)
默认用空格填充,但也可改用点号、短横等辅助对齐和视觉分隔:
→
→
这种写法适合调试阶段快速识别等级区域边界,上线后建议回归空格以保持简洁。
与模板字符串结合提升复用性
封装成函数,自动处理不同等级的对齐逻辑:
统一 padEnd 宽度是关键——选 6 是因最长常见等级 "WARNING"(7 字符)较少用,若需兼容,可设为 7 或 8 并保持全局一致。
"INFO""WARN""ERROR"padEnd(6)"INFO".padEnd(6)"INFO ""WARN".padEnd(6)"WARN ""ERROR".padEnd(6)"ERROR "const level = "WARN";
const message = "Connection timeout";
console.log(`[${level.padEnd(6)}] [${new Date().toISOString().slice(11, 19)}] ${message}`);
// 输出:[WARN ] [14:22:05] Connection timeout
level.padEnd(6)"INFO".padEnd(6, ".")"INFO..""ERROR".padEnd(6, "-")"ERROR-"const log = (level, msg) => {
const paddedLevel = level.padEnd(6);
console.log(`[${paddedLevel}] [${new Date().toISOString().slice(11, 19)}] ${msg}`);
};
log("DEBUG", "User logged in"); // [DEBUG ] [14:22:05] User logged in
log("ERROR", "DB connection failed"); // [ERROR ] [14:22:05] DB connection failed
