Как сделать console.log () для записи в файл в hapi.js - PullRequest
0 голосов
/ 29 мая 2018

Я создал приложение, используя Hapi.js, и я использовал good-file для записи журналов в файл, а когда я использую методы 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 голосов
/ 29 мая 2018

От этот ответ от Людовик Фельц ...

// 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, сохраняя при этом его первоначальную функциональность вместе с вашими модификациями.

0 голосов
/ 30 мая 2018

Я думаю, что лучшее решение - сделать объект сервера доступным для функции, с которой вы хотите войти.

Можете ли вы рассказать мне больше?

С настраиваемым плагином вы можете практически сделать объект сервера доступным везде

0 голосов
/ 29 мая 2018

Поскольку console.log имеет предопределенное поведение, вам необходимо либо переопределить его, либо создать новую функцию.Например:

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