@alexaegis/logging
Version:
Minimal logging tools
64 lines (63 loc) • 1.92 kB
JavaScript
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
};