fix(logging): clarify LOG_DIR creation and bootstrap errors
- Wrap mkdir in ensureLogDir with stderr message on failure. - Trim LOG_DIR; note in .env.example that the directory is created at startup. Made-with: Cursor
This commit is contained in:
parent
f2ffdb64a8
commit
f317be9eab
|
|
@ -9,5 +9,5 @@ DATABASE_URL="postgresql://kord:password@localhost:5432/kord_db?schema=public"
|
||||||
# Logging (log4js — file only under LOG_DIR, no console appender)
|
# Logging (log4js — file only under LOG_DIR, no console appender)
|
||||||
# Levels: trace, debug, info, warn, error, fatal
|
# Levels: trace, debug, info, warn, error, fatal
|
||||||
LOG_LEVEL=info
|
LOG_LEVEL=info
|
||||||
# Daily log files; keep 7 rotated days (see logger.ts)
|
# Daily log files; keep 7 rotated days (see logger.ts). Directory is created at startup if missing.
|
||||||
LOG_DIR=logs
|
LOG_DIR=logs
|
||||||
|
|
@ -14,10 +14,20 @@ function resolveLogLevel(): LogLevel {
|
||||||
return (LOG_LEVELS as readonly string[]).includes(raw) ? (raw as LogLevel) : 'info';
|
return (LOG_LEVELS as readonly string[]).includes(raw) ? (raw as LogLevel) : 'info';
|
||||||
}
|
}
|
||||||
|
|
||||||
const logDir = resolve(process.env.LOG_DIR || 'logs');
|
function ensureLogDir(dir: string): void {
|
||||||
|
try {
|
||||||
|
mkdirSync(dir, { recursive: true });
|
||||||
|
} catch (err) {
|
||||||
|
const msg = err instanceof Error ? err.message : String(err);
|
||||||
|
process.stderr.write(`[kord] Failed to create LOG_DIR "${dir}": ${msg}\n`);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const logDir = resolve((process.env.LOG_DIR || 'logs').trim());
|
||||||
const level = resolveLogLevel();
|
const level = resolveLogLevel();
|
||||||
|
|
||||||
mkdirSync(logDir, { recursive: true });
|
ensureLogDir(logDir);
|
||||||
|
|
||||||
log4js.configure({
|
log4js.configure({
|
||||||
appenders: {
|
appenders: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue