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