From 03dd89add0ddb29485ca0eb9aa855119fdc22647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Thu, 5 Mar 2026 14:56:33 +0800 Subject: [PATCH] Disable file logging in main process Prevent the main process from writing logs to file when running in multi-process mode. base.ts and napcat.ts now disable file logging unless the process is a worker or multi-process mode is disabled (checks NAPCAT_WORKER_PROCESS / NAPCAT_DISABLE_MULTI_PROCESS and ENV.isWorkerProcess / ENV.isMultiProcessDisabled). This reduces duplicate log output and disk I/O by ensuring only worker processes write log files. --- packages/napcat-shell/base.ts | 3 +++ packages/napcat-shell/napcat.ts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/packages/napcat-shell/base.ts b/packages/napcat-shell/base.ts index 185f13a8..4f8ca948 100644 --- a/packages/napcat-shell/base.ts +++ b/packages/napcat-shell/base.ts @@ -581,6 +581,9 @@ export async function NCoreInitShell () { console.log('NapCat Shell App Loading...'); const pathWrapper = new NapCatPathWrapper(); const logger = new LogWrapper(pathWrapper.logsPath); + if (process.env['NAPCAT_WORKER_PROCESS'] !== '1' && process.env['NAPCAT_DISABLE_MULTI_PROCESS'] !== '1') { + logger.setFileLogEnabled(false); + } handleUncaughtExceptions(logger); await applyPendingUpdates(pathWrapper, logger); diff --git a/packages/napcat-shell/napcat.ts b/packages/napcat-shell/napcat.ts index 488d25a2..945ef314 100644 --- a/packages/napcat-shell/napcat.ts +++ b/packages/napcat-shell/napcat.ts @@ -52,6 +52,9 @@ interface WorkerMessage { const logger = new LogWrapper(pathWrapper.logsPath); +if (!ENV.isWorkerProcess && !ENV.isMultiProcessDisabled) { + logger.setFileLogEnabled(false); +} // 进程管理器和当前 Worker 进程引用 let processManager: IProcessManager | null = null;