Skip to content

Commit 2e7d12c

Browse files
committed
Fixed fancy log formatting
1 parent 44a1db5 commit 2e7d12c

File tree

2 files changed

+11
-20
lines changed

2 files changed

+11
-20
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ dist
33
docs
44
tmp
55
*.log
6+
.tmp.*

src/log.ts

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

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

122113
const levelColor = {
@@ -185,30 +176,29 @@ export interface FormatOptions {
185176
*/
186177
export function fancy({ style, colorize }: FormatOptions) {
187178
return function* (entry: Entry) {
188-
yield* _prettyMs(entry, style);
179+
if (style == 'css') yield colorize == 'level' ? '%c%s %c%s' : '%c%s %c%s%s %c%s';
180+
181+
yield* style == 'ansi' ? [ansi(timestamp(entry), '2;37')] : ['opacity: 0.8; color: white;', timestamp(entry)];
189182

190183
const levelText =
191184
style == 'ansi'
192185
? [ansi(levels[entry.level].toUpperCase(), levelColor.ansi[entry.level])]
193-
: ['%c' + levels[entry.level].toUpperCase(), levelColor.css[entry.level]];
186+
: [levelColor.css[entry.level], levels[entry.level].toUpperCase()];
194187

195188
if (colorize == 'level') {
196189
yield* levelText;
197190
yield entry.message;
198191
return;
199192
}
200193

201-
if (entry.level < Level.CRIT) {
202-
yield* levelText;
203-
yield ': ';
204-
}
194+
if (entry.level < Level.CRIT) yield* levelText;
205195

206-
if (colorize == 'message') yield ansi(entry.message, messageColor.ansi[entry.level]);
207-
else yield* ['%c' + entry.message, messageColor.css[entry.level]];
196+
if (style == 'ansi') yield ansi(entry.message, messageColor.ansi[entry.level]);
197+
else yield* [messageColor.css[entry.level], entry.message];
208198
};
209199
}
210200

211-
let _format: (entry: Entry) => string | Iterable<string> = (entry: Entry) => [..._prettyMs(entry), entry.message];
201+
let _format: (entry: Entry) => string | Iterable<string> = (entry: Entry) => [timestamp(entry), entry.message];
212202

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

0 commit comments

Comments
 (0)