我正在使用NodeJ进行游戏,并意识到访问旧的console.log
输出会非常有帮助。机制和计算变得相当复杂,以后访问它们以搜索并对它们进行一些数据分析以找到我的修改器(战斗机制)的正确值会很好。同时,我也希望在控制台中看到console.log
。
我知道这不可能使用普通的javascript(参见This),但我希望npm有一些方法来拦截日志并将它们记录到服务器上的文件中。有什么想法吗?
答案 0 :(得分:3)
同时登录stdout和文件的NPM选项可以是Winston。 Winston是一个日志库,允许您定义自己的记录器,指定他们的传输(传输是您如何处理这些日志行)。在您的情况下,您可以定义具有两个传输的记录器,stdout和日志文件。示例(受Winston documentation启发):
const winston = require('winston');
let logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
logger.info('hello, world!');
如果您运行上面的代码,您将在控制台和somefile.log
中看到日志。
答案 1 :(得分:2)
你可以像这样拦截console.log
var cl = console.log
console.log = function(...args){
// your custom logging logic here
cl.apply(console, args)
}