我想使用Winston登录我的nodejs express项目。在我的主文件(server.js)中,我有以下代码:
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
winston.log('info', 'Hello log files!')
我也想在其他文件中使用这个库,所以我必须将这两行添加到我想要使用它的每个文件中,还是有更好的方法。
答案 0 :(得分:1)
你可以创建customWinston.js文件:
let winston = require('winston');
winston.level = process.env.LOG_LEVEL
winston.log('info', 'Hello log files!')
exports.customWinston = winston;
然后需要你的自定义Winston:
let customWinston = require('./customWinston').customWinston;
答案 1 :(得分:1)
您可以像这样导出和调用它。
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
module.exports = winston;
在其他档案中
const winston = require('/path/to/winston');
winston.log('blah blah');
或者,只需将其设为全局并调用即可。 (不推荐)
const winston = require('winston');
winston.level = process.env.LOG_LEVEL
global.WINSTON = winston;
...
// other file
WINSTON.log('blah')
答案 2 :(得分:0)
执行此操作的首选方法是将自定义记录器添加到winston对象:
var winston = require('winston');
// add a new logger to the winston object
winston.loggers.add('logger1', {
console: {
level: 'silly',
colorize: true,
label: 'Console One'
},
file: {
filename: '/path/to/your/logfile.log'
level: process.env.LOG_LEVEL
}
}
按照上面代码段中的说明设置记录器后,您只需在应用程序的任何其他文件中“获取”记录器:
var winston = require('winston');
// get your preconfigured logger
var myLogger = winston.loggers.get('logger1');
// start logging!
myLogger.error('FooError');
myLogger.log('warn', 'Exiting application');
这也是winston文档中描述的方式:Winston Docs