Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Winston Logger:路径必须是字符串_Node.js_Logging_Typeerror_Winston - Fatal编程技术网

Node.js Winston Logger:路径必须是字符串

Node.js Winston Logger:路径必须是字符串,node.js,logging,typeerror,winston,Node.js,Logging,Typeerror,Winston,我在Node.js项目中使用Winston进行日志记录。我想构建几个具有类似设置的记录器,因此为了保持干燥,我尝试构建具有以下功能的传输: function makeTransport(dir, logLevel) { return new winston.transports.DailyRotateFile({ filename: `${LOG_DIR}/${dir}/${logLevel}-%DATE%.log`, datePattern: 'YYYY-MM-DD-HH'

我在Node.js项目中使用Winston进行日志记录。我想构建几个具有类似设置的记录器,因此为了保持干燥,我尝试构建具有以下功能的传输:

function makeTransport(dir, logLevel) {
  return new winston.transports.DailyRotateFile({
    filename: `${LOG_DIR}/${dir}/${logLevel}-%DATE%.log`,
    datePattern: 'YYYY-MM-DD-HH',
    level: logLevel,
    format: myFormat
  });
}
但是当我运行这个时,它抛出了一个错误

TypeError: Path must be a string. Received undefined

我已经检查了我所有的语法。这个错误肯定与传输构造函数有关。有没有一种方法可以不在我的代码中复制粘贴记录器定义而完成我要做的事情?

更新:我找到了一种可行的解决方法

function makeTransport(dir, logLevel) {
  let def = {
    filename: `${LOG_DIR}/${dir}/${logLevel}-%DATE%.log`,
    datePattern: 'YYYY-MM-DD-HH',
    level: logLevel,
    format: myFormat
  };
  return new winston.transports.DailyRotateFile(def);
}
我仍然不知道为什么原来的方法不起作用,但这是大约相同数量的代码