feat: 添加 util.log-or-console.js,方便记录日志。
parent
3eb49e280c
commit
1a92762f82
|
@ -3,12 +3,7 @@ const path = require('node:path')
|
|||
const lodash = require('lodash')
|
||||
const jsonApi = require('@docmirror/mitmproxy/src/json')
|
||||
const mergeApi = require('../merge')
|
||||
|
||||
let log = console // 默认使用console,日志系统初始化完成后,设置为 logger
|
||||
function setLogger (logger) {
|
||||
log = logger
|
||||
jsonApi.setLogger(logger)
|
||||
}
|
||||
const logOrConsole = require('../utils/util.log-or-console')
|
||||
|
||||
function getUserBasePath (autoCreate = true) {
|
||||
const userHome = process.env.USERPROFILE || process.env.HOME || '/'
|
||||
|
@ -24,12 +19,12 @@ function getUserBasePath (autoCreate = true) {
|
|||
|
||||
function loadConfigFromFile (configFilePath) {
|
||||
if (configFilePath == null) {
|
||||
log.warn('配置文件地址为空')
|
||||
logOrConsole.warn('配置文件地址为空')
|
||||
return {}
|
||||
}
|
||||
|
||||
if (!fs.existsSync(configFilePath)) {
|
||||
log.info('配置文件不存在:', configFilePath)
|
||||
logOrConsole.info('配置文件不存在:', configFilePath)
|
||||
return {} // 文件不存在,返回空配置
|
||||
}
|
||||
|
||||
|
@ -38,17 +33,17 @@ function loadConfigFromFile (configFilePath) {
|
|||
try {
|
||||
configStr = fs.readFileSync(configFilePath)
|
||||
} catch (e) {
|
||||
log.error('读取配置文件失败:', configFilePath, ', error:', e)
|
||||
logOrConsole.error('读取配置文件失败:', configFilePath, ', error:', e)
|
||||
return {}
|
||||
}
|
||||
|
||||
// 解析配置文件
|
||||
try {
|
||||
const config = jsonApi.parse(configStr)
|
||||
log.info('读取配置文件成功:', configFilePath)
|
||||
logOrConsole.info('读取配置文件成功:', configFilePath)
|
||||
return config
|
||||
} catch (e) {
|
||||
log.error(`解析配置文件失败,文件内容格式不正确,文件路径: ${configFilePath},文件内容:${configStr},error:`, e)
|
||||
logOrConsole.error(`解析配置文件失败,文件内容格式不正确,文件路径: ${configFilePath},文件内容:${configStr},error:`, e)
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
@ -111,13 +106,11 @@ function getConfigFromFiles (userConfig, defaultConfig) {
|
|||
// 删除为null及[delete]的项
|
||||
mergeApi.deleteNullItems(merged)
|
||||
|
||||
log.info('加载及合并远程配置完成')
|
||||
logOrConsole.info('加载及合并远程配置完成')
|
||||
return merged
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
setLogger,
|
||||
|
||||
getUserBasePath,
|
||||
|
||||
loadConfigFromFile,
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
let log = console
|
||||
|
||||
function _doLog (fun, args) {
|
||||
if (log === console) {
|
||||
log[fun](...[`[${fun.toUpperCase()}]`, ...args])
|
||||
} else {
|
||||
log[fun](...args)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
setLogger (logger) {
|
||||
log = logger
|
||||
},
|
||||
|
||||
debug () {
|
||||
// eslint-disable-next-line prefer-rest-params
|
||||
_doLog('debug', arguments)
|
||||
},
|
||||
info () {
|
||||
// eslint-disable-next-line prefer-rest-params
|
||||
_doLog('info', arguments)
|
||||
},
|
||||
warn () {
|
||||
// eslint-disable-next-line prefer-rest-params
|
||||
_doLog('warn', arguments)
|
||||
},
|
||||
error () {
|
||||
// eslint-disable-next-line prefer-rest-params
|
||||
_doLog('error', arguments)
|
||||
},
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
const path = require('node:path')
|
||||
const log4js = require('log4js')
|
||||
const configLoader = require('../config/local-config-loader')
|
||||
const logOrConsole = require('./util.log-or-console')
|
||||
const configFromFiles = require('../config/index').configFromFiles
|
||||
|
||||
// 日志级别
|
||||
|
@ -35,6 +35,11 @@ let log = null
|
|||
|
||||
// 设置一组日志配置
|
||||
function log4jsConfigure (categories) {
|
||||
if (log != null) {
|
||||
log.error('当前进程已经设置过日志配置,无法再设置更多日志配置:', categories)
|
||||
return
|
||||
}
|
||||
|
||||
const config = {
|
||||
appenders: {
|
||||
std: { type: 'stdout' },
|
||||
|
@ -53,9 +58,9 @@ function log4jsConfigure (categories) {
|
|||
|
||||
// 拿第一个日志类型来logger并设置到log变量中
|
||||
log = log4js.getLogger(categories[0])
|
||||
configLoader.setLogger(log)
|
||||
logOrConsole.setLogger(log)
|
||||
|
||||
log.info('设置日志配置完成:', config)
|
||||
log.info(`设置日志配置完成,进程ID: ${process.pid},配置:`, config)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
@ -77,8 +82,8 @@ module.exports = {
|
|||
} else {
|
||||
if (log == null) {
|
||||
log4jsConfigure([category])
|
||||
} else {
|
||||
log.error(`当前进程已经设置过日志配置,无法设置 "${category}" 的配置,先临时返回 "${log.category}" 的 log 进行日志记录。如果与其他类型的日志在同一进程中写入,请参照 core 和 gui 一起配置`)
|
||||
} else if (category !== log.category) {
|
||||
log.error(`当前进程已经设置过日志配置,无法再设置 "${category}" 的配置,先临时返回 "${log.category}" 的 log 进行日志记录。如果与其他类型的日志在同一进程中写入,请参照 core 和 gui 一起配置`)
|
||||
}
|
||||
|
||||
return log
|
||||
|
|
|
@ -1,13 +1,9 @@
|
|||
const logOrConsole = require('@docmirror/dev-sidecar/src/utils/util.log-or-console')
|
||||
let JSON5 = require('json5')
|
||||
if (JSON5.default) {
|
||||
JSON5 = JSON5.default
|
||||
}
|
||||
|
||||
let log = console // 默认使用console,日志系统初始化完成后,设置为 logger
|
||||
function setLogger (logger) {
|
||||
log = logger
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
parse (str, defaultValue) {
|
||||
if (str == null || str.length < 2) {
|
||||
|
@ -20,7 +16,7 @@ module.exports = {
|
|||
try {
|
||||
return JSON5.parse(str)
|
||||
} catch (e) {
|
||||
log.error(`JSON5解析失败: ${e.message},JSON内容:\r\n`, str)
|
||||
logOrConsole.error(`JSON5解析失败: ${e.message},JSON内容:\r\n`, str)
|
||||
return defaultValue
|
||||
}
|
||||
} else {
|
||||
|
@ -43,6 +39,4 @@ module.exports = {
|
|||
}
|
||||
}
|
||||
},
|
||||
|
||||
setLogger,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue