Node.js winston将日志记录到不同的文件
我是node.js的新手,有这样的winson配置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
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`);