programing tip

Express js를 출력 파일에 로그인 하시겠습니까?

itbloger 2020. 12. 3. 07:35
반응형

Express js를 출력 파일에 로그인 하시겠습니까?


Express JS 웹 서버를 기록하는 가장 좋은 방법은 무엇입니까? 내장 된 express.logger ()는 화면에 로그 만 표시합니다. / log 폴더의 파일에도 로그인 할 수 있습니까? 또한 현재 로거는 요청과 응답을 자동으로 기록합니다. 일부 응용 프로그램 데이터를 로그 파일에 기록해야합니다. express.logger를 사용하여이 작업을 수행 할 수 있습니까?

감사합니다, Lalith


확장되는 연결 미들웨어를 살펴보십시오. express.logger ()는 connect.logger ()와 동일합니다.

http://expressjs.com/api.html#middleware

http://www.senchalabs.org/connect/logger.html

로거에는 출력을 원하는 위치로 설정할 수있는 스트림 옵션이 있습니다. 기본적으로 stdout으로 보냅니다. 또한 사용할 로그 형식을 지정할 수 있습니다.


Express 또는 Connect 로그를 파일로 보내려면 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에서도 작동합니다.


윈스턴 을 시도해야합니다

var logger = new (winston.Logger)({
  transports: [
    new (winston.transports.Console)(),
    new (winston.transports.File)({ filename: 'somefile.log' })
  ]
});

winston은 다소 어리 석고 다중 전송 로깅 == tee (1)이거나 파일을 추적하고 데이터를 전송하는 것입니다.


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

Node.js의 경우 http://learnboost.github.com/cluster/ 클러스터를 시도해야합니다 . Express를 사용하여 앱을 빌드하고 클러스터가 로깅을 포함한 나머지 작업을 인수합니다.

  1. app.use (express.logger ()); // 익스프레스 앱에서, 예 : app.js
  2. cluster.use (cluster.logger ( 'logs')); // 클러스터 서버에서 예 : server.js

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!')
})

참고 URL : https://stackoverflow.com/questions/5489815/logging-in-express-js-to-a-output-file

반응형