diff --git a/packages/core/src/utils/util.logger.js b/packages/core/src/utils/util.logger.js index 40b091b..026384e 100644 --- a/packages/core/src/utils/util.logger.js +++ b/packages/core/src/utils/util.logger.js @@ -30,6 +30,8 @@ const appenderConfig = { backups: configFromFiles.app.keepLogFileCount, // 保留日志文件数 } +let log = null + // 设置一组日志配置 function log4jsConfigure (categories) { const config = { @@ -47,25 +49,28 @@ function log4jsConfigure (categories) { } log4js.configure(config) -} -function getLogger (category) { - if (category === 'core' || category === 'gui') { - // core 和 gui 的日志配置,因为它们在同一进程中,所以一起配置,且只能配置一次 - if (!log4js.isConfigured()) { - log4jsConfigure(['core', 'gui']) - } - } else { - if (!log4js.isConfigured()) { - log4jsConfigure([category]) - } else { - throw new Error(`当前进程已经设置过日志配置,无法设置 "${category}" 的配置,如果与其他类型的日志在同一进程是写入,请参照 core 和 gui 单独设置`) - } - } - - return log4js.getLogger(category) + // 拿第一个日志类型来logger并设置到log变量中 + log = log4js.getLogger(categories[0]) } module.exports = { - getLogger, + getLogger (category) { + if (category === 'core' || category === 'gui') { + // core 和 gui 的日志配置,因为它们在同一进程中,所以一起配置,且只能配置一次 + if (log == null) { + log4jsConfigure(['core', 'gui']) + } + + return log4js.getLogger(category) + } else { + if (log == null) { + log4jsConfigure([category]) + } else { + log.error(`当前进程已经设置过日志配置,无法设置 "${category}" 的配置,先临时返回 "${log.category}" 的 log 进行日志记录。如果与其他类型的日志在同一进程中写入,请参照 core 和 gui 一起配置`) + } + + return log + } + }, }