openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
71 lines (70 loc) • 2.24 kB
JavaScript
import "./src-SskUVPJG.mjs";
import { t as expectDefined } from "./expect-lbe3Hgrh.mjs";
import { r as defaultRuntime } from "./runtime-BC29JSZp.mjs";
import { i as getLogger } from "./logger-DQckz-uQ.mjs";
import { t as isVerbose } from "./global-state-BAD7XgmL.mjs";
import { l as writeRootConsoleLine } from "./console-cjqeMbm6.mjs";
import { t as createSubsystemLogger } from "./subsystem-BlrgtxyM.mjs";
import { r as theme } from "./theme-DzaUZY4q.mjs";
//#region src/logger.ts
const subsystemPrefixRe = /^([a-z][a-z0-9-]{1,20}):\s+(.*)$/i;
function splitSubsystem(message) {
const match = message.match(subsystemPrefixRe);
if (!match) return null;
const subsystem = match.at(1);
const rest = match.at(2);
if (subsystem === void 0 || rest === void 0) return null;
return {
subsystem,
rest
};
}
function logWithSubsystem(params) {
const parsed = params.runtime === defaultRuntime ? splitSubsystem(params.message) : null;
if (parsed) {
expectDefined(createSubsystemLogger(parsed.subsystem)[params.subsystemMethod], "subsystem logger method")(parsed.rest);
return;
}
const formatted = params.runtimeFormatter(params.message);
if (params.runtime !== defaultRuntime || !writeRootConsoleLine(params.runtimeMethod, formatted)) params.runtime[params.runtimeMethod](formatted);
getLogger()[params.loggerMethod](params.message);
}
const info = theme.info;
const warn = theme.warn;
const danger = theme.error;
function logInfo(message, runtime = defaultRuntime) {
logWithSubsystem({
message,
runtime,
runtimeMethod: "log",
runtimeFormatter: info,
loggerMethod: "info",
subsystemMethod: "info"
});
}
function logWarn(message, runtime = defaultRuntime) {
logWithSubsystem({
message,
runtime,
runtimeMethod: "log",
runtimeFormatter: warn,
loggerMethod: "warn",
subsystemMethod: "warn"
});
}
function logError(message, runtime = defaultRuntime) {
logWithSubsystem({
message,
runtime,
runtimeMethod: "error",
runtimeFormatter: danger,
loggerMethod: "error",
subsystemMethod: "error"
});
}
function logDebug(message) {
getLogger().debug(message);
if (isVerbose()) console.log(theme.muted(message));
}
//#endregion
export { logWarn as i, logError as n, logInfo as r, logDebug as t };