Hapi很好地如何在不使用控制台日志的情况下打印调试消息

Whi*_*her 1 node.js hapijs

我正在使用hapi和良好的模块,我想知道在不使用控制台日志的情况下打印调试消息的最佳方法是什么.

比如现在是

server.register(
    {
            register: require('good'),
            options: options
    },
    function (err) {
        if (err) {
                    return console.error(err);
            }
            // If the module is required by another script, we don’t start the server (ie test suite)
            if (!module.parent) {
                server.start(function () {
                console.info('Server started at ' + server.info.uri);
                    });
        }

    }
);
Run Code Online (Sandbox Code Playgroud)

使用https://github.com/visionmedia/debug 就好了

server.register(
    {
            register: require('good'),
            options: options
    },
    function (err) {
        if (err) {
                    return console.error(err);
            }
            // If the module is required by another script, we don’t start the server (ie test suite)
            if (!module.parent) {
                server.start(function () {
                    debug('Server started at ' + server.info.uri);
                });
        }

    }
);
Run Code Online (Sandbox Code Playgroud)

还是有更好的选择?

Mat*_*son 5

调试非常好.或者,如果您想留在hapi生态系统中,可以使用Good来管理您的日志记录需求:

var Hapi = require('hapi');

var server = new Hapi.Server();
server.connection({ port: 4000 });

var options = {
    reporters: [{
        reporter: require('good-console'),    // Log everything to console
        events: { log: '*' }
    }, {
        reporter: require('good-file'),       // Log 'debug' to debug_log.log
        events: { log: 'debug' },
        config: 'debug_log.log'
    }, {
        reporter: require('good-file'),       // Log 'error' to error_log.log
        events: { log: 'error' },
        config: 'error_log.log'
    }]
};

server.register({
    register: require('good'),
    options: options
}, function (err) {

    if (err) {
        server.log(['error'], err);             // log an 'error' message
    }

    server.start(function (err) {

        if (err) {
            server.log(['error'], err);         // log an 'error' message
        }

        server.log(['debug'], 'Started...');    // log a 'debug' message
    });
});
Run Code Online (Sandbox Code Playgroud)

除了登录到控制台之外,还有一些其他"记者"可以让你登录到HTTP,UDP等:

https://github.com/hapijs/good#officially-supported-by-hapijs