@alexaegis/logging
Version:
Minimal logging tools
64 lines (63 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const tslog = require("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 tslog.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
};
};
exports.LogLevel = LogLevel;
exports.createLogger = createLogger;
exports.isLogLevelEnumKey = isLogLevelEnumKey;
exports.isLogLevelEnumValue = isLogLevelEnumValue;
exports.logLevelKeys = logLevelKeys;
exports.logLevelValues = logLevelValues;
exports.noopLogger = noopLogger;
exports.normalizeLogLevelOption = normalizeLogLevelOption;
exports.normalizeLoggerOption = normalizeLoggerOption;
exports.normalizeLoggerOptions = normalizeLoggerOptions;
exports.prettyLogTemplateBody = prettyLogTemplateBody;
exports.prettyLogTemplateTimestamp = prettyLogTemplateTimestamp;