阅读How to log - the 12 factor application way它声明使用此命令:
node app.js 2> app.err 1> app.out
我理解>
运算符将命令输出发送到文件。
所以我也可以使用node app.js output.log
。
对于命令node app.js 2> app.err 1> app.out
,确定app.err或app.out是否已登录的机制是什么。是应用程序内的日志记录级别吗?将记录数据发送到app.err& app.out?
答案 0 :(得分:1)
预期的行为是,发送到stderr
的输出会重定向到app.err
,而发送到stdout
的输出会转到app.out
。例如这个脚本:
var winston = require('winston');
var transports = [
new winston.transports.Console({
level: 'debug',
handleExceptions: true,
json: false,
timestamp: () => (new Date()).toLocaleString(),
colorize: false
})
];
var logger = new winston.Logger({
transports: transports,
exitOnError: false
});
logger.error('goes to stderr');
logger.info('goes to stdout');
会将goes to stderr
写入app.err
,而goes to stdout
会显示在app.out
中。但是,可以使用stderrLevels
属性覆盖此默认行为,使用该属性可以指定哪些调试级别转到stderr
。
或者,使用console
,行为会被记录here - 默认情况下,console.error
会转到stderr
(即您的设置中为app.err
) console.log
会输出到stdout
(app.out
)。