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

Вход в экспресс js в выходной файл?

Каков наилучший способ регистрации моего экспресс-веб-сервера js? Встроенный express.logger() просто отображает журналы на экране. Могу ли я также записать их в файл в папке /log? Также текущий регистратор автоматически регистрирует запрос и ответы. Мне нужно записать некоторые данные приложения в файлы журнала. Можно ли это сделать с помощью express.logger?

С уважением, Лалитх

4b9b3361

Ответ 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!')
})