我已经启用了日志记录模式,并使用在winston之上构建的自定义日志记录接口进行日志记录。 在每个记录的消息中,我附加一个唯一的请求UUID(每个请求唯一),并使用cls-hooked使它可用于所有模块。
但是,使用sequelize记录查询时,由于某种原因,它无法引用我创建并用于存储引用的命名空间。
令人惊讶的是这里的随机性。有时我收到请求ID,有时却没有。
new Sequelize(config.orm.mysql.dbConnection, {
logging: constants.ENABLE_SQL_CONSOLE_LOGGING ? (msg, time) => {
logger.info('db-logs', msg + ', Elapsed time: ' + time + ' ms')
} : false,
pool: {
max: constants.POOL_MAX_SIZE,
min: constants.POOL_MIN_SIZE,
acquire: constants.POOL_ACQUIRE_TIME,
idle: constants.POOL_IDLE_TIME
},
})
登录界面
try {
let formattedMessage = context + ' || [' + level.toUpperCase() + '] || ' + moment()
.format('YYYY-MM-DD HH:mm:ss') + ' || PID: ' + process.pid + ' || ' + message + ' '
let namespace = getNamespace(constants.APP_NAME)
let refId
if (namespace !== undefined) {
refId = namespace.get(constants.REF_ID)
}formattedMessage = (refId ? refId : '') + ' || ' + formattedMessage
在这里,formattedMessage变量不包含refId。
这里有任何解决方法吗?