我想将时间戳添加到日志中。实现这一目标的最佳方法是什么?
发布于 2018-02-02 06:55:08
上面的答案对我不起作用。如果您正在尝试使用最新版本的Winston - 3.0.0-rc1将时间戳添加到日志中,则可以使用以下方法:
const {transports, createLogger, format} = require('winston');
const logger = createLogger({
format: format.combine(
format.timestamp(),
format.json()
),
transports: [
new transports.Console(),
new transports.File({filename: 'logs/error/error.log', level: 'error'}),
new transports.File({filename: 'logs/activity/activity.log', level:'info'})
]
});
我使用了'format.combine()‘。因为我所有的传输都需要时间戳,所以我在createLogger中添加了格式化选项,而不是在每个传输中。我在控制台和文件(activity.log)上的输出如下:
{"message":"Connected to mongodb","level":"info","timestamp":"2018-02-01T22:35:27.758Z"}
{"message":"Connected to mongodb","level":"info","timestamp":"2018-02-01T22:35:27.758Z"}
我们可以像往常一样在'format.combine()‘中将格式添加到这个时间戳中,使用:
format.timestamp({format:'MM-YY-DD'})
发布于 2018-04-30 19:02:19
我们也可以这样做
var winston = require('winston');
const { createLogger, format, transports } = require('winston');
var config = require('../configurations/envconfig.js');
var loggerLevel = process.env.LOGGERLEVEL || config.get('LOGGERLEVEL');
var logger = winston.createLogger({
format: format.combine(
format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`+(info.splat!==undefined?`${info.splat}`:" "))
),
transports: [
new (winston.transports.Console)({ level: loggerLevel }),
]
});
module.exports = logger;
发布于 2016-06-22 03:45:17
我们可以使用console-stamp向现有控制台添加时间戳和日志级别:require('console-stamp')(console, '[yyyy-mm-dd HH:MM:ss.l]')
https://stackoverflow.com/questions/10271373
复制相似问题