如何使console.log()写入hapi.js

时间:2018-05-29 15:14:03

标签: javascript node.js npm hapijs

我使用Hapi.js创建了一个应用程序,我使用了良好的文件将日志写入文件,当我使用request.log()和server.log()方法时,它将日志写入文件。但我的要求是,当我使用console.log()时,它应该将其记录到文件中。因为我的所有文件中都没有请求或服务器对象。我怎样才能实现它?

这就是我配置记者的方式

myFileReporter: [{
    "module": "good-squeeze",
    "name": "Squeeze",
    "args": [{ 
        "request": "*", 
        "error": "*", 
        "response":"*",
        "log":"*"
    }]},
   {
        "module": "good-squeeze",
        "name": "SafeJson"
   }, 
   {
        "module": "good-file",
        "args": ["./logs/log"]
   }]

3 个答案:

答案 0 :(得分:0)

由于console.log具有预定义的行为,您将需要覆盖它,或者创建一个新函数。例如:

const debugLog = (content) => {
    request.log(content);
    console.log(content);
};

答案 1 :(得分:0)

this answer来自Ludovic Feltz ...

// define a new console
var console=(function(oldCons){
    return {
        log: function(text){
            oldCons.log(text);
            // Your logging code here
        },
        info: function (text) {
            oldCons.info(text);
        },
        warn: function (text) {
            oldCons.warn(text);
        },
        error: function (text) {
            oldCons.error(text);
        }
    };
}(window.console));

//Then redefine the old console
window.console = console;

这使您可以继续使用console.log,同时保留其原始功能以及修改。

答案 2 :(得分:0)

我认为最好的解决方案是在要记录的函数中提供服务器对象。

你能告诉我更多吗?

使用custom plug in,几乎可以使服务器对象随处可用