在Windows 2008 R2环境中,我有一个socket.io聊天应用程序,该应用程序当前是从命令行启动的:

node app.js


这会在屏幕上输出有关应用程序状态的不同信息,我当然可以在命令行窗口中看到这些信息。

我想将节点应用程序作为Windows服务运行,我发现NSSM将帮助我做到这一点,这很棒。但我也希望能够在需要时查看输出。

有什么方法可以获取该输出并将其放入日志文件(类似于IIS / Apache日志)?

谢谢

最佳答案

https://github.com/nomiddlename/log4js-node允许您以多种输出类型保存日志,文件就是其中一种。

可以使用它替换您选择的新输出中的控制台输出。


var log4js = require('log4js');

log4js.loadAppender('file');
log4js.addAppender(log4js.appenders.file('output.log'));

// the important part ;)
log4js.replaceConsole()
//

var logger = log4js.getLogger();
logger.debug("Debug message");

console.log('debug from the console');

09-25 18:26