sails node apppath sails.js

sails.js - node - sails https



Sails.js HOWTO: implementar el registro para solicitudes HTTP (4)

Con el registro predeterminado deficiente de Sails.js no se muestran los registros de solicitud de http (incluso en forma detallada). ¿Cuál es la mejor manera de implementar el registro de solicitudes http en la consola para que pueda ver si recibo solicitudes mal formadas? El registro por defecto de Expressjs sería suficiente.

Preferiría una forma de configuración de Sails.js de hacerlo en lugar de un cambio en el enfoque del código fuente es posible.

Alguien ha tenido experiencia con esto. Mis búsquedas de google parecen extrañamente carecer de información.

Ejecutando Sails v0.9.8 en Mac OSX.


Encontré que se ajustaba a mis necesidades: utiliza el módulo Morgan para Express y lo conecta todo para usted: sails-hook-requestlogger


Tal vez demasiado tarde, pero para futuras referencias sobre esto, estoy usando Sails 0.11 y puede configurarlo en el middleware, en el archivo config/http.js

Agrega esta función (de hecho viene como un ejemplo)

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

Y configurarlo en el order var:

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


sails-hook-requestlogger módulo sails-hook-requestlogger para escribir todos los registros de solicitud (registros de acceso) en el archivo.

sails-hook-requestlogger-file

¡Todo lo que tienes que hacer es npm install sails-hook-requestlogger-file y listo!

Uso

Simplemente levante su aplicación como de costumbre y se registrarán todas sus solicitudes de servidor, con información útil como el tiempo de respuesta, directamente a su consola. Por defecto, se activa en su entorno de desarrollo pero se desactiva en producción.

Configuración

De forma predeterminada, la configuración se encuentra en sails.config.requestloggerfile. Puede crear config/requestlogger.js y anular estos valores predeterminados:

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.

Ejemplo de archivo config/requestlogger.js :

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 };

Espero que ayude a alguien :)


No hay una opción de configuración de Sails para registrar todas las solicitudes, pero puede agregar una ruta de registro rápida en la parte superior de config/routes.js que debería hacer el truco:

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