Вход в экспресс js в выходной файл?
Каков наилучший способ регистрации моего экспресс-веб-сервера js? Встроенный express.logger() просто отображает журналы на экране. Могу ли я также записать их в файл в папке /log? Также текущий регистратор автоматически регистрирует запрос и ответы. Мне нужно записать некоторые данные приложения в файлы журнала. Можно ли это сделать с помощью express.logger?
С уважением,
Лалитх
Ответы
Ответ 1
Посмотрите на соединительное промежуточное программное обеспечение, которое выражает расширение. Функция express.logger() такая же, как connection.logger():
http://expressjs.com/api.html#middleware
http://www.senchalabs.org/connect/logger.html
В журнале есть опция потока, которая может быть установлена там, где вы хотите, чтобы выход был выполнен. По умолчанию он отправляет его на stdout. Также вы можете указать формат журнала, который хотите использовать.
Ответ 2
Чтобы отправить экспресс-или подключить журналы к файлу, используйте Node writeStream.
Например, чтобы отправить экспресс-журналы в. /myLogFile.log:
откройте поток в файл в режиме добавления с помощью:
var logFile = fs.createWriteStream('./myLogFile.log', {flags: 'a'}); //use {flags: 'w'} to open in write mode
то в вашем экспресс-конфигурации используйте:
app.use(express.logger({stream: logFile}));
также должен работать для connect.logger.
Ответ 3
Вам следует попробовать winston
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
Ответ 4
winston - это глупое, многотранспортное ведение журнала == tee (1), или просто хвост файла и передача данных, просто, как пирог
Ответ 5
Использовать log4js:
var log4js = require('log4js');
log4js.configure({
appenders: [{type: 'console'},
{type: 'file', filename: 'express.log', category: 'dev'}]
});
var logger = log4js.getLogger('dev');
logger.setLevel('DEBUG');
app.use(log4js.connectLogger(logger, {level: log4js.levels.DEBUG}));
Ответ 6
вам следует попробовать кластер http://learnboost.github.com/cluster/ для Node.
Используйте функцию Express для создания приложения, тогда как кластер возьмет на себя все остальные задачи, включая ведение журнала.
- app.use(express.logger());//в ваших экспресс-приложениях, например: app.js
- cluster.use(cluster.logger('logs'));//на вашем сервере кластера, ex: server.js
Ответ 7
Для регистрации HTTP-запросов: https://github.com/expressjs/morgan#write-logs-to-a-file
var express = require('express')
var fs = require('fs')
var morgan = require('morgan')
var app = express()
// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'})
// setup the logger
app.use(morgan('combined', {stream: accessLogStream}))
app.get('/', function (req, res) {
res.send('hello, world!')
})