Skip to content

Commit 6ed13b2

Browse files
committed
Fixed fancy log formatting
1 parent 093ec36 commit 6ed13b2

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

src/log.ts

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -109,17 +109,8 @@ function ansi(text: string, format: string): string {
109109
return `\x1b[${format}m${text}\x1b[0m`;
110110
}
111111

112-
function _prettyMs(entry: Entry, style?: 'ansi' | 'css'): string[] {
113-
const text = '[' + (entry.elapsedMs / 1000).toFixed(3).padStart(10) + '] ';
114-
115-
switch (style) {
116-
case 'ansi':
117-
return [ansi(text, '2;37')];
118-
case 'css':
119-
return ['%c' + text, 'opacity: 0.8; color: white;'];
120-
default:
121-
return [text];
122-
}
112+
function timestamp(entry: Entry): string {
113+
return '[' + (entry.elapsedMs / 1000).toFixed(3).padStart(10) + '] ';
123114
}
124115

125116
const levelColor = {
@@ -188,30 +179,29 @@ export interface FormatOptions {
188179
*/
189180
export function fancy({ style, colorize }: FormatOptions) {
190181
return function* (entry: Entry) {
191-
yield* _prettyMs(entry, style);
182+
if (style == 'css') yield colorize == 'level' ? '%c%s %c%s' : '%c%s %c%s%s %c%s';
183+
184+
yield* style == 'ansi' ? [ansi(timestamp(entry), '2;37')] : ['opacity: 0.8; color: white;', timestamp(entry)];
192185

193186
const levelText =
194187
style == 'ansi'
195188
? [ansi(levels[entry.level].toUpperCase(), levelColor.ansi[entry.level])]
196-
: ['%c' + levels[entry.level].toUpperCase(), levelColor.css[entry.level]];
189+
: [levelColor.css[entry.level], levels[entry.level].toUpperCase()];
197190

198191
if (colorize == 'level') {
199192
yield* levelText;
200193
yield entry.message;
201194
return;
202195
}
203196

204-
if (entry.level < Level.CRIT) {
205-
yield* levelText;
206-
yield ': ';
207-
}
197+
if (entry.level < Level.CRIT) yield* levelText;
208198

209-
if (colorize == 'message') yield ansi(entry.message, messageColor.ansi[entry.level]);
210-
else yield* ['%c' + entry.message, messageColor.css[entry.level]];
199+
if (style == 'ansi') yield ansi(entry.message, messageColor.ansi[entry.level]);
200+
else yield* [messageColor.css[entry.level], entry.message];
211201
};
212202
}
213203

214-
let _format: (entry: Entry) => string | Iterable<string> = (entry: Entry) => [..._prettyMs(entry), entry.message];
204+
let _format: (entry: Entry) => string | Iterable<string> = (entry: Entry) => [timestamp(entry), entry.message];
215205

216206
export function format(entry: Entry): string[] {
217207
const formatted = _format(entry);

0 commit comments

Comments
 (0)