Node.js winston将日志记录到不同的文件

Node.js winston将日志记录到不同的文件,node.js,winston,Node.js,Winston,我是node.js的新手,有这样的winson配置 const winston=require('winston'); 常量传输=[]; if(process.env.NODE_env!=“开发”){ 传输。推送(新的(winston.transports.DailRotateFile)({ 文件名:path.resolve(_dirname,“../logs/%DATE%/source1.log”), 级别:“信息”, 日期模式:“YYYY-MM-DD”, })); 传输。推送(新的(win

我是node.js的新手,有这样的winson配置

const winston=require('winston');
常量传输=[];
if(process.env.NODE_env!=“开发”){
传输。推送(新的(winston.transports.DailRotateFile)({
文件名:path.resolve(_dirname,“../logs/%DATE%/source1.log”),
级别:“信息”,
日期模式:“YYYY-MM-DD”,
}));
传输。推送(新的(winston.transports.DailRotateFile)({
文件名:path.resolve(_dirname,'../logs/%DATE%/source2.log'),
级别:“信息”,
日期模式:“YYYY-MM-DD”,
}));
}
让logger=winston.createLogger({
级别:“信息”,
格式:winston.format.json(),
运输,,
exitOnError:对,
});
logger.log({
日期:(新建日期()).toString(),
水平,
消息
来源:,
});由谷歌贸易FR->EN编写

你好!

如果您希望将日志分为几个单独的文件,我可以为您提供以下解决方案。
注意:此解决方案基于日志级别

温斯顿:3.0.0
Nodejs:9.3.0

/logger/index.js

const winston = require('winston');

module.exports = (dirname) => {
    const loggers = {
        info: null,
        warn: null,
        query: null,
        errDat: null,
        errFun: null,
        errInt: null,
    };

    for (let level of Object.keys(loggers)) {
        loggers[level] = winston.createLogger({
            levels: { [level]: 0 },
            format: winston.format.combine(
                winston.format.timestamp(),
                winston.format.printf(info =>
                    `${info.timestamp}\t[${info.level}]\t${info.message}`
                ),
            ),
            transports: [
                new winston.transports.Console({
                    level
                }),
                new winston.transports.File({
                    dirname,
                    filename: `${level}.log`,
                    level,
                    format: winston.format.json(),
                }),
            ]
        })[level];
    }

    return loggers;
};
其他文件

const path = require('path');
const { info, query, errInt, errDat, errFun } = require('./logger')(
    path.join(__dirname, 'logs')
);

info(`Test`);
query(`Test`);
errDat(`Test`);
errInt(`Test`);
errFun(`Test`);
通过谷歌交易FR->EN

你好!

如果您希望将日志分为几个单独的文件,我可以为您提供以下解决方案。
注意:此解决方案基于日志级别

温斯顿:3.0.0
Nodejs:9.3.0

/logger/index.js

const winston = require('winston');

module.exports = (dirname) => {
    const loggers = {
        info: null,
        warn: null,
        query: null,
        errDat: null,
        errFun: null,
        errInt: null,
    };

    for (let level of Object.keys(loggers)) {
        loggers[level] = winston.createLogger({
            levels: { [level]: 0 },
            format: winston.format.combine(
                winston.format.timestamp(),
                winston.format.printf(info =>
                    `${info.timestamp}\t[${info.level}]\t${info.message}`
                ),
            ),
            transports: [
                new winston.transports.Console({
                    level
                }),
                new winston.transports.File({
                    dirname,
                    filename: `${level}.log`,
                    level,
                    format: winston.format.json(),
                }),
            ]
        })[level];
    }

    return loggers;
};
其他文件

const path = require('path');
const { info, query, errInt, errDat, errFun } = require('./logger')(
    path.join(__dirname, 'logs')
);

info(`Test`);
query(`Test`);
errDat(`Test`);
errInt(`Test`);
errFun(`Test`);