Skip to main content
Module

x/aleph/server/log.ts

The Full-stack Framework in Deno.
Very Popular
Go to Latest
File
import { dim, green, red, yellow } from "https://deno.land/std@0.155.0/fmt/colors.ts";
export type LevelName = "debug" | "info" | "warn" | "error";
export enum Level { Debug = 0, Info = 1, Warn = 2, Error = 3,}
export class Logger { #level: Level = Level.Info;
get level(): Level { return this.#level; }
setLevel(level: LevelName): void { switch (level) { case "debug": this.#level = Level.Debug; break; case "info": this.#level = Level.Info; break; case "warn": this.#level = Level.Warn; break; case "error": this.#level = Level.Error; break; } }
debug(...args: unknown[]): void { if (this.#level <= Level.Debug) { console.debug(dim("DEBUG"), ...args); } }
info(...args: unknown[]): void { if (this.#level <= Level.Info) { console.log(green("INFO"), ...args); } }
warn(...args: unknown[]): void { if (this.#level <= Level.Warn) { console.warn(yellow("WARN"), ...args); } }
error(...args: unknown[]): void { if (this.#level <= Level.Error) { console.error(red("ERROR"), ...args); } }
fatal(...args: unknown[]): never { console.error(red("FATAL"), ...args); return Deno.exit(1); }}
export default new Logger();