如何在每次需要时创建模块的一个新实例,但不删除节点缓存?

时间:2019-02-02 19:26:17

标签: node.js

我正在创建一个记录器帮助程序,我想在其中添加使用记录器的文件名。问题是记录器要求始终返回相同的缓存实例,所以我的想法行不通。

这是我的代码:

'use strict'
const config = require('../../config')
/**
 *
 * @param moduleName
 * @method {debug,error}
 * @returns {{debug,error}}
 */
module.exports = (moduleName) => {
  if (!moduleName) {
    const error = 'module name required'
    throw error
  }
  let customLogger = require('custom-logger')
    .config({ level: config.logger.logLevel,
      format: `%event% ${moduleName.toUpperCase().underline}  %padding%[%timestamp%]: %message%` })

  customLogger.error().config({ color: 'red' })
  customLogger.debug().config({ color: 'green' })

  customLogger.debug(`logger required with moduleName: ${moduleName}`)
  return customLogger
}

示例用法:

const logger = require('logger')('file.name')

有没有将创造新的记录每一次,但不删除节点缓存的方法呢? (我知道这种方法)

或者您也许知道一个开箱即用的记录器库吗?

我能想到的一件事是内部具有构造函数的库。

0 个答案:

没有答案