如何为每个日志条目指定不同的日志文件

时间:2014-04-11 20:10:02

标签: node.js logging winston

我有一个以下脚本作为我的应用程序中其他脚本的日志记录模块:

logger.js

winston = require('winston');

var fileLog =  new (winston.Logger)({
    transports:[
        new (winston.transports.File)({filename: filename.log})
    ]
});

module.exports.fileLog = fileLog;

我通过以下方式在脚本中使用此日志记录模块:

的script.js

var logger = require('./logger');
logger.fileLog.log('info','Chill winston');

现在所有日志条目都保存到 filename.log ,但我希望每次从 script.js 记录条目时都能指定不同的日志文件

有可能吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我设法通过我的日志记录模块中的自定义函数来解决问题。

<强> logger.js

winston = require('winston');

function fileLogF(filename,level,msg) {
    if(typeof fileLog == 'undefined' || (fileLog.transports.file.filename)!= filename){
        fileLog =  new (winston.Logger)({
            transports:[
                new (winston.transports.File)({filename: filename,json:false }),
            ],
        })
    }
    fileLog.log(level,msg);
}

现在我可以在创建日志条目时指定日志文件:

<强>的script.js

var logger = require('./logger');
logger.fileLog('filename.log','info','Chill winston');