pinetto
Version:
Isomorphic, opinionated logging library focusing on simplicity and readability. Supports child loggers.
47 lines • 1.37 kB
JavaScript
import { LEVELS, NOOP } from './constants.js';
import { format } from './format.js';
export class LogMethods {
#level;
#writer;
#datetime;
constructor(writer, level = 'info', datetime) {
this.#writer = writer;
this.level = level;
this.#datetime = datetime;
}
get level() {
return this.#level;
}
set level(value) {
for (let i = 0, seen = false, level; i < LEVELS.length; i += 1) {
level = LEVELS[i];
if (seen || (seen = level === value)) {
this[level] = LogMethods.prototype[level];
}
else {
this[level] = NOOP;
}
}
}
error(prefix, message, args) {
this.#writer.write(format(this.#datetime, 'ERR', prefix, message, args));
}
;
warn(prefix, message, args) {
this.#writer.write(format(this.#datetime, 'WRN', prefix, message, args));
}
;
info(prefix, message, args) {
this.#writer.write(format(this.#datetime, 'INF', prefix, message, args));
}
;
debug(prefix, message, args) {
this.#writer.write(format(this.#datetime, 'DBG', prefix, message, args));
}
;
trace(prefix, message, args) {
this.#writer.write(format(this.#datetime, 'TRC', prefix, message, args));
}
;
}
//# sourceMappingURL=methods.js.map