Sail.js – 如何创build一个干净的日志文件?

我目前正在使用Sails v0.10.0-rc7并试图将控制台日志转发到一个文件。 一些较老的线程描述了通过config/log.js添加到config/log.js来实现这一点的方法:

 module.exports = { log: { level: 'info', filePath: 'someFile.log' } }; 

但是这似乎并没有工作了。 Sails使用以前封装winston的子项目队长 – 日志 。 根据README.md,我将config/log.js改为:

 var winston = require('winston'); module.exports = { 'log': { 'custom': new (winston.Logger)({ 'transports': [ new (winston.transports.Console)({ 'level': 'info', 'colorize': true, 'timestamp': false, 'json': false }), new winston.transports.File({ 'level': 'debug', 'colorize': false, 'timestamp': true, 'json': true, 'filename': './logs/test.log', 'maxsize': 5120000, 'maxFiles': 3 }) ] }) } }; 

那么,这是有效的,但logging的消息总是在消息文本中有一个彩色的前缀。 所以在控制台的输出看起来像

 info: info: info: info: info: info: Sails <| info: info: v0.10.0-rc7 |\ info: info: /|.\ info: info: / || \ info: info: ,' |' \ info: info: .-'.-==|/_--' info: info: `--'-------' info: info: __---___--___---___--___---___--___ info: info: ____---___--___---___--___---___--___-__ info: info: 

(两个信息标签都以绿色着色)并且日志文件消息看起来像

 {"level":"info","message":"\u001b[32minfo: \u001b[39m","timestamp":"2014-07-02T10:51:13.517Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m","timestamp":"2014-07-02T10:51:13.517Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m Sails <|","timestamp":"2014-07-02T10:51:13.517Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m v0.10.0-rc7 |\\","timestamp":"2014-07-02T10:51:13.517Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m /|.\\","timestamp":"2014-07-02T10:51:13.517Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m / || \\","timestamp":"2014-07-02T10:51:13.517Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m ,' |' \\","timestamp":"2014-07-02T10:51:13.527Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m .-'.-==|/_--'","timestamp":"2014-07-02T10:51:13.527Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m `--'-------' ","timestamp":"2014-07-02T10:51:13.527Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m __---___--___---___--___---___--___","timestamp":"2014-07-02T10:51:13.527Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m ____---___--___---___--___---___--___-__","timestamp":"2014-07-02T10:51:13.527Z"} {"level":"info","message":"\u001b[32minfo: \u001b[39m","timestamp":"2014-07-02T10:51:13.527Z"} 

在生产模式下工作压缩的前缀,但我仍然在日志消息中有一些颜色编码。

那么,有没有人有一个想法如何摆脱在日志消息中的前缀和颜色编码?

我能够通过添加colors: false来完成我的目标colors: false

 var winston = require('winston'); module.exports = { 'log': { 'colors': false, 'custom': new (winston.Logger)({ 'transports': [ new (winston.transports.Console)({ 'level': 'info', 'colorize': true, 'timestamp': false, 'json': false }), new winston.transports.File({ 'level': 'debug', 'colorize': false, 'timestamp': true, 'json': true, 'filename': './logs/test.log', 'maxsize': 5120000, 'maxFiles': 3 }) ] }) } };