Winston logger.info 不是函数
Posted
技术标签:
【中文标题】Winston logger.info 不是函数【英文标题】:Winston logger.info is not a function 【发布时间】:2017-08-27 19:20:00 【问题描述】:我已经为 Winston 设置了到 mysql 和控制台的传输,并将它放在一个名为 logger
的模块中。就这样……
// modules/logger.js
/* require statements */
exports.logger = new (winston.Logger)(
transports: [
new winstonMysql(winstonMysqlConfig),
new (winston.transports.Console)
]
);
然后在/modules
// modules/index.js
/* grab other modules */
exports.logger = require('./logger.js');
当我做console.log(modules.logger)
时,我明白了
logger:
EventEmitter
...
error: [Function],
warn: [Function],
info: [Function],
verbose: [Function],
debug: [Function],
silly: [Function],
...
但是当我调用modules.logger.info()
时,它会抛出modules.logger.info is not a function
错误。怎么了?
【问题讨论】:
【参考方案1】:您没有在modules.js
中正确导出记录器。
exports.logger = require('./logger.js').logger;
【讨论】:
【参考方案2】:我也遇到过类似的问题,但我的目录结构有些不同我有一个记录器文件和导入有点不同这里是我使用上述参考修复的方法
const winston = require('winston');
const logConfiguration =
format: winston.format.json(),
'transports': [
new winston.transports.Console(),
new winston.transports.File(
filename: 'sample.log'
)
]
;
const logger = winston.createLogger(logConfiguration);
exports.logger = logger;
导入
...
const logger = require('../logger/app-logger').logger
logger.info(type: 'login', user: user.name);
...
【讨论】:
以上是关于Winston logger.info 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
请教logger.info与System.out.print的区别