import { ConsoleAppender, basicLogPrefix } from "base-log-factory"; import pc from "picocolors"; import { colors } from "./colors.mjs"; class ColorfulAppender extends ConsoleAppender { /** * Constructor (构造函数) */ constructor(opts = {}) { super(opts.layout); this.name = "colorful"; this.colors = opts.colors || colors; } /** * Write log (写入日志) * @param event Log event (日志事件) */ write(event) { const { layout } = this; if (layout) { console.log(this.color(layout.format(event), event)); } else { console.log(this.color(basicLogPrefix(event, this.dateFormat), event), ...event.message); } } color(str, event) { return pc[this.colors[event.level]](str); } } export { ColorfulAppender };