Подтвердить что ты не робот

Sails.js HOWTO: выполнить ведение журнала для HTTP-запросов

При плохой регистрации по умолчанию Sails.js, не отображающей журналы запросов HTTP (даже в подробных). Каков наилучший способ реализации HTTP-запроса для консолидации, чтобы я мог видеть, возникают ли у меня искаженные запросы? Автозагрузку по умолчанию для Expressjs будет достаточно.

Я предпочел бы вариант конфигурации Sails.js, а затем изменить подход к исходному коду.

Имел ли кто-нибудь опыт с этим. Мои поисковые запросы Google кажутся странно отсутствующими.

Запуск парусов v0.9.8 на Mac OSX.

4b9b3361

Ответ 1

Нет опции конфигурации Sails для регистрации каждого запроса, но вы можете добавить быстрый маршрут ведения журнала вверху config/routes.js, который должен сделать трюк:

// config/routes.js
'/*': function(req, res, next) {sails.log.verbose(req.method, req.url); next();}

Ответ 2

Возможно, слишком поздно, но для будущих ссылок об этом я использую Sails 0.11, и вы можете настроить это в промежуточном программном обеспечении в файле config/http.js

Добавьте эту функцию (на самом деле это как пример)

// Logs each request to the console
requestLogger: function (req, res, next) {
    console.log("Requested :: ", req.method, req.url);
    return next();
},

И настройте его на order var:

order: [
  'startRequestTimer',
  'cookieParser',
  'session',
  'requestLogger',  // Just here
  'bodyParser',
  'handleBodyParserError',
  'compress',
  'methodOverride',
  'poweredBy',
  '$custom',
  'router',
  'www',
  'favicon',
  '404',
  '500'
]

Ответ 3

Я разработал модуль sails-hook-requestlogger для записи всех журналов запросов (журналов доступа) в файл.

sails-hook-requestlogger-file

Все, что вам нужно сделать, это npm install sails-hook-requestlogger-file, и вам хорошо идти!

Использование

Просто поднимите приложение как обычно, и все ваши запросы на сервер будут записаны с полезной информацией, такой как время отклика, прямо на консоль. По умолчанию он активируется в вашей среде dev, но деактивируется в процессе производства.

Конфигурация

По умолчанию конфигурация работает в файле sails.config.requestloggerfile Вы можете создать config/requestlogger.js и переопределить эти значения по умолчанию:

Parameter        Type        Details
format           ((string))  Defines which logging format to use. Deaults to dev.
logLocation      ((string))  Defines where to log: console or file. Defaults to console.
fileLocation     ((string))  Location of file relative to project root (if file is specified in logLocation. This has no effect if console is specified in logLocation.
inDevelopment    ((boolean)) Whether or not to log requests in development environment. Defaults to true.
inProduction     ((boolean)) Whether or not to log requests in production environment Defaults to false.

Пример config/requestlogger.js file:

module.exports.requestloggerfile = {
 //see: https://github.com/expressjs/morgan#predefined-formats for more formats
  format: ':remote-addr - [:date[clf]] ":method :url" :status :response-time ms ":user-agent"',
  logLocation: 'file',
  fileLocation: '/var/log/myapp/access.log',
  inDevelopment: true,
  inProduction: true
};

Надеюсь, что это поможет кому-то:)