Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Node.js에 로그인

<시간/>

로깅은 Node.js로 작성하든 다른 프로그래밍 언어로 작성하든 모든 애플리케이션에서 매우 필수적인 부분입니다. 로깅은 실시간 오류 및 예외와 함께 애플리케이션의 이상한 동작을 감지하는 데 도움이 됩니다. 애플리케이션에 논리적 로그를 반드시 넣어야 합니다. 이러한 로그는 사용자가 실수를 식별하고 긴급하게 해결하는 데 도움이 됩니다.

현재 사용자에게 존재하는 5가지 다른 로그 수준이 있습니다. 이러한 로그 수준은 다양한 종류의 로그를 정의하는 데 사용되며 사용자가 다양한 시나리오를 식별하는 데 도움이 됩니다. 이러한 로그를 최대한 활용하려면 로그 수준을 신중하게 구성해야 합니다. −

  • 오류

  • 경고

  • 정보

  • 장황한

  • 디버그

미들웨어

이 미들웨어를 요청 파이프라인에 넣어 디버그 모듈의 기능을 직접 사용하여 로그를 인쇄할 수 있습니다. 디버그 모듈의 가장 큰 장점은 거의 모든 모듈이 로그 인쇄에 디버그를 사용한다는 것입니다. 디버그 모듈을 사용하여 로그 및 오류를 인쇄할 수 있습니다.

이 미들웨어는 주로 중간 파이프라인 역할을 하는 데 사용됩니다. 이 파이프라인에서 로그 파일에 인쇄될 로그를 전달할 수 있습니다. 요청 및 응답도 로깅 목적으로 이 미들웨어를 통해 전달됩니다. Express 앱에서 매우 유용합니다. 미들웨어 설정은 쉽고 사용 중인 모든 프레임워크에서 수행할 수 있습니다.

미들웨어용 파일 구성

애플리케이션

const app = express()
const logMiddleware = require('my-logging-middleware')
app.use(logMiddleware)

라우터

const router = express.Router()
const routeLoggingMiddleware = require('my-route-logging-middleware')
router.use(routeLoggingMiddleware)

오류

const app = express();
const errorLoggingMiddleware = require('my-error-logging-middleware')
app.use(errorLoggingMiddleware)

윈스턴 패키지

로깅 목적으로 winston 패키지를 사용할 수도 있습니다. 또한 다양한 로그 수준, 쿼리 및 프로파일러를 제공합니다.

애플리케이션

const app = express()
const winstonPackage = require('winston')
const consoleTransport = new winstonPackage.transports.Console()
const myWinstonOptions = {
   transports: [consoleTransport]
}
const logger = new winstonPackage.createLogger(myWinstonOptions)

function logRequest(req, res, next) {
   logger.info(req.url)
   next()
}
app.use(logRequest)

function logError(err, req, res, next) {
   logger.error(err)
   next()
}
app.use(logError)