Как я могу подключиться к встроенной системе ведения журнала socket.io для генерации своих собственных сообщений? - PullRequest
7 голосов
/ 01 октября 2011

socket.io, кажется, имеет в основном разумную систему регистрации для всех своих внутренних устройств.Как я сам получаю этот объект регистрации, чтобы я мог генерировать свои собственные сообщения журнала на соответствующих уровнях?Меня беспокоит, что мои console.log() сообщения не имеют отметок времени, не выровнены и некрасивы рядом с сообщениями socket.io.В коде socket.io я провел целую кучу ошибок, и на данный момент я недостаточно разбираюсь в узле, чтобы понять, как выглядит иерархия объектов, чтобы узнать, как получить нужный объект из моего кода.

В долгосрочной перспективе мне, вероятно, понадобится более надежный системный модуль ведения журналов (с возможностью записи в файлы, автоматического поворота, управления уровнями для каждого модуля, настраиваемых уровней ведения журнала и т. Д.), Уинстон выглядит разумно, но могу ли я заставить socket.io тоже его использовать?Было бы неплохо иметь все в одном месте.

Ответы [ 2 ]

8 голосов
/ 05 декабря 2011

При использовании socket.io я смог подключиться к существующему модулю логгера следующим образом:

var express = require('express'),
    app     = module.exports = express.createServer(), //just creating 'app' for io
    io      = require('socket.io').listen(app),
    logger  = io.log, // access the existing logger setup in socket.io
    util    = require('util');

logger.info(util.format("Express server listening on port %d in %s mode", 8003, app.settings.env));

Настройка регистратора также очень проста:

io.configure('production', function(){
  io.set('log level', 1);
}
3 голосов
/ 02 октября 2011

Рассматривали ли вы использование промежуточного программного обеспечения регистратора из Connect ?Похоже, кто-то уже создал библиотеку для того, что вы хотите назвать socket.IO-connect .Я использую нечто подобное в моей Express программе:

var connect = require('connect');

module.exports = connect.createServer(
    connect.logger({ format: ':response-time :method :url' }),
    connect.static(__dirname + '/public)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...