mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-14 02:31:24 +00:00
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import path from "node:path";
|
|
import type { OpenClawConfig } from "../config/types.js";
|
|
import {
|
|
POSIX_OPENCLAW_TMP_DIR,
|
|
resolvePreferredOpenClawTmpDir,
|
|
} from "../infra/tmp-openclaw-dir.js";
|
|
|
|
const LOG_PREFIX = "openclaw";
|
|
const LOG_SUFFIX = ".log";
|
|
|
|
function canUseNodeFs(): boolean {
|
|
const getBuiltinModule = (
|
|
process as NodeJS.Process & {
|
|
getBuiltinModule?: (id: string) => unknown;
|
|
}
|
|
).getBuiltinModule;
|
|
if (typeof getBuiltinModule !== "function") {
|
|
return false;
|
|
}
|
|
try {
|
|
return getBuiltinModule("fs") !== undefined;
|
|
} catch {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function formatLocalDate(date: Date): string {
|
|
const year = date.getFullYear();
|
|
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
const day = String(date.getDate()).padStart(2, "0");
|
|
return `${year}-${month}-${day}`;
|
|
}
|
|
|
|
export function resolveDefaultRollingLogFile(date = new Date()): string {
|
|
const logDir = canUseNodeFs() ? resolvePreferredOpenClawTmpDir() : POSIX_OPENCLAW_TMP_DIR;
|
|
return path.join(logDir, `${LOG_PREFIX}-${formatLocalDate(date)}${LOG_SUFFIX}`);
|
|
}
|
|
|
|
export function resolveConfiguredLogFilePath(config?: OpenClawConfig | null): string {
|
|
return config?.logging?.file ?? resolveDefaultRollingLogFile();
|
|
}
|