UNPKG

@alexaegis/logging

Version:
64 lines (63 loc) 1.92 kB
import { Logger } from "tslog"; const prettyLogTemplateTimestamp = "{{dateIsoStr}} "; const prettyLogTemplateBody = "{{logLevelName}}:{{nameWithDelimiterPrefix}} "; const normalizeLoggerOptions = (options) => { const timestamps = options?.timestamps ?? false; return { name: "log", timestamps, prettyLogTemplate: timestamps ? prettyLogTemplateTimestamp + prettyLogTemplateBody : prettyLogTemplateBody, ...options }; }; const createLogger = (options) => { return new Logger(normalizeLoggerOptions(options)); }; var LogLevel = /* @__PURE__ */ ((LogLevel2) => { LogLevel2[LogLevel2["OFF"] = 1e6] = "OFF"; LogLevel2[LogLevel2["FATAL"] = 6] = "FATAL"; LogLevel2[LogLevel2["ERROR"] = 5] = "ERROR"; LogLevel2[LogLevel2["WARN"] = 4] = "WARN"; LogLevel2[LogLevel2["INFO"] = 3] = "INFO"; LogLevel2[LogLevel2["DEBUG"] = 2] = "DEBUG"; LogLevel2[LogLevel2["TRACE"] = 1] = "TRACE"; LogLevel2[LogLevel2["SILLY"] = 0] = "SILLY"; return LogLevel2; })(LogLevel || {}); const logLevelKeys = Object.values(LogLevel).filter( (valueOrKey) => typeof valueOrKey === "string" ); const logLevelValues = Object.values(LogLevel).filter( (valueOrKey) => typeof valueOrKey === "number" ); const isLogLevelEnumValue = (o) => { return logLevelValues.includes(o); }; const isLogLevelEnumKey = (o) => { return logLevelKeys.includes(o); }; const normalizeLogLevelOption = (options) => { return { logLevel: options?.logLevel ?? LogLevel.INFO }; }; const noopLogger = createLogger({ type: "hidden", minLevel: LogLevel.OFF }); const normalizeLoggerOption = (options) => { return { logger: options?.logger ?? noopLogger }; }; export { LogLevel, createLogger, isLogLevelEnumKey, isLogLevelEnumValue, logLevelKeys, logLevelValues, noopLogger, normalizeLogLevelOption, normalizeLoggerOption, normalizeLoggerOptions, prettyLogTemplateBody, prettyLogTemplateTimestamp };