优化日志切分和保留策略

This commit is contained in:
yml
2026-05-28 12:32:13 +08:00
parent 26d40a2c13
commit e4c9873c8d
10 changed files with 99 additions and 22 deletions
+1
View File
@@ -14,6 +14,7 @@ export function createDefaultRuntimeConfig(projectRoot: string): RuntimeConfig {
logging: {
level: "info",
retentionDays: 30,
},
database: {
@@ -12,6 +12,7 @@ test('applyEnvOverrides maps typed environment values without mutating base conf
PORT: '4000',
DATA_ROOT: './tmp/backend-data',
DATABASE_SSL: 'yes',
LOG_RETENTION_DAYS: '45',
ADMIN_DEFAULT_USERS_JSON: '[{"username":"admin","password":"secret","role":"admin"}]',
KAQUAN91_USER_ID: 'kaquan-user',
KAQUAN91_SECRET: 'kaquan-secret',
@@ -21,6 +22,7 @@ test('applyEnvOverrides maps typed environment values without mutating base conf
assert.equal(config.server.port, 4000)
assert.equal(config.data.root, path.resolve('./tmp/backend-data'))
assert.equal(config.database.ssl, true)
assert.equal(config.logging.retentionDays, 45)
assert.deepEqual(config.admin.defaultUsers, [
{ username: 'admin', password: 'secret', role: 'admin' },
])
@@ -55,12 +57,14 @@ test('applyEnvOverrides ignores empty or invalid values', () => {
DATABASE_SSL: 'maybe',
ADMIN_DEFAULT_USERS_JSON: '{"username":"admin"}',
LOG_LEVEL: ' ',
LOG_RETENTION_DAYS: 'not-a-number',
})
assert.equal(config.server.port, 3000)
assert.equal(config.database.ssl, false)
assert.deepEqual(config.admin.defaultUsers, [])
assert.equal(config.logging.level, 'info')
assert.equal(config.logging.retentionDays, 30)
})
test('ENV_OVERRIDES keeps environment variable names unique', () => {
@@ -78,6 +82,7 @@ function createRuntimeConfig(): RuntimeConfig {
},
logging: {
level: 'info',
retentionDays: 30,
},
database: {
url: 'postgres://postgres:postgres@127.0.0.1:5432/order_site',
+1
View File
@@ -31,6 +31,7 @@ export const ENV_OVERRIDES: readonly EnvOverride[] = [
integerEnv("PORT", ["server", "port"]),
stringEnv("DATA_ROOT", ["data", "root"], path.resolve),
stringEnv("LOG_LEVEL", ["logging", "level"]),
integerEnv("LOG_RETENTION_DAYS", ["logging", "retentionDays"]),
stringEnv("DATABASE_URL", ["database", "url"]),
booleanEnv("DATABASE_SSL", ["database", "ssl"]),
integerEnv("DATABASE_MAX_CONNECTIONS", ["database", "maxConnections"]),