refactor(logger): optimize logging architecture with 6 improvements
1. Extract shared module: consolidate getLogDir() and isProduction() into shared.ts, eliminate duplication across logger modules 2. Make retention config effective: delay file transport creation until config is loaded, apply appRetention/auditRetention from config.yaml 3. Add before-quit log flush: close logger and audit logger on app exit to prevent log loss 4. Unify logError entry point: remove duplicate logError from index.ts, re-export from error-utils.ts with richer error context 5. Renderer log level filtering: add client-side level check in preload to skip IPC for filtered-out messages 6. Child logger cache + audit cleanup: cache child loggers in IPC handler for performance, remove redundant timestamp format in audit logger Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,8 @@ import { dirname } from 'path'
|
||||
import { app } from 'electron'
|
||||
import yaml from 'js-yaml'
|
||||
import { z } from 'zod'
|
||||
import { createLogger, setLogLevel } from '../logger'
|
||||
import { createLogger, applyLoggingConfig } from '../logger'
|
||||
import { applyAuditConfig } from '../logger/audit-logger'
|
||||
import {
|
||||
fullConfigSchema,
|
||||
type FullConfig,
|
||||
@@ -170,7 +171,8 @@ export class ConfigManager {
|
||||
await this.saveConfig(DEFAULT_CONFIG)
|
||||
this.config = DEFAULT_CONFIG
|
||||
// Apply logging configuration from default config
|
||||
setLogLevel(DEFAULT_CONFIG.logging.level)
|
||||
applyLoggingConfig(DEFAULT_CONFIG.logging)
|
||||
applyAuditConfig(DEFAULT_CONFIG.logging.auditRetention)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -190,7 +192,8 @@ export class ConfigManager {
|
||||
this.config = validated
|
||||
|
||||
// Apply logging configuration
|
||||
setLogLevel(validated.logging.level)
|
||||
applyLoggingConfig(validated.logging)
|
||||
applyAuditConfig(validated.logging.auditRetention)
|
||||
|
||||
log.info('Configuration loaded and validated successfully')
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user