在哪里可以将日志文件保存到Express框架中的Node.JS?

我有一个node.js应用程序,我正在使用Winston跟踪一些日志logging。 我想除了客户端之外还有一个服务器端日志。 在快速框架中,它只是在公共文件夹中的客户端可访问的文件,如果我想做一个服务器端日志,客户端用户无法访问它,我可以创build一个公共文件夹之外?

确切地说,只需将日志文件指向/public文件夹之外,以及在app.use(express.static(path.join(__dirname, 'public_folder')));configuration的任何其他文件夹app.use(express.static(path.join(__dirname, 'public_folder')));

你可以configurationWinston的运行版本将通过设置合适的属性来logging文件,例如,在file传输中你必须设置filename选项。

以下是一个config.js文件,我加载了我的日志logging活动(服务器端和客户端请求)的所有configuration:

config.json

 { "transports": { "console": { "enabled": true, "colorize" : true, "timestamp": false }, "file" : { "enabled": true, "colorize" : true, "filename" : "/var/log/vifros.log", "timestamp": true }, "mongodb": { "enabled": true, "db": "vifros" } } } 

编辑日志logging – logger.js – (见评论):

 var winston = require('winston'); require('winston-mongodb').MongoDB; // Monkeypatch Winston for MongoDb transport. var config = require('../config'); /* * Enable initially all transports for initial app startup and then disable them according to settings. * * Add console transport. */ winston.remove(winston.transports.Console); // To being able to reconfigure it. if (config.logging.transports.console.enabled) { winston.add(winston.transports.Console, config.logging.transports.console); } /* * File transport. */ if (config.logging.transports.file.enabled) { winston.add(winston.transports.File, config.logging.transports.file); } /* * Enable saving logs to mongodb. */ if (config.logging.transports.mongodb.enabled) { winston.add(winston.transports.MongoDB, config.logging.transports.mongodb); } exports.logger = winston; exports.tags = { init : 'init', api_request: 'api_request', db : 'db', validation : 'validation', cross_rel : 'cross_relationship', os : 'os' };