Files
Moltbot/src/logging/levels.ts
maweibin 98a03c490b Feat/logger support log level validation0222 (#23436)
* 1、环境变量**:新增 `OPENCLAW_LOG_LEVEL`,可取值 `silent|fatal|error|warn|info|debug|trace`。设置后同时覆盖**文件日志**与**控制台**的级别,优先级高于配置文件。
2、启动参数**:在 `openclaw gateway run` 上新增 `--log-level <level>`,对该次进程同时生效于文件与控制台;未传时仍使用环境变量或配置文件。

* fix(logging): make log-level override global and precedence-safe

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-22 11:15:13 +01:00

38 lines
913 B
TypeScript

export const ALLOWED_LOG_LEVELS = [
"silent",
"fatal",
"error",
"warn",
"info",
"debug",
"trace",
] as const;
export type LogLevel = (typeof ALLOWED_LOG_LEVELS)[number];
export function tryParseLogLevel(level?: string): LogLevel | undefined {
if (typeof level !== "string") {
return undefined;
}
const candidate = level.trim();
return ALLOWED_LOG_LEVELS.includes(candidate as LogLevel) ? (candidate as LogLevel) : undefined;
}
export function normalizeLogLevel(level?: string, fallback: LogLevel = "info") {
return tryParseLogLevel(level) ?? fallback;
}
export function levelToMinLevel(level: LogLevel): number {
// tslog level ordering: fatal=0, error=1, warn=2, info=3, debug=4, trace=5
const map: Record<LogLevel, number> = {
fatal: 0,
error: 1,
warn: 2,
info: 3,
debug: 4,
trace: 5,
silent: Number.POSITIVE_INFINITY,
};
return map[level];
}