< Express

Express - Naplózás ES

Szerző: Sallai András

Copyright © 2025, Sallai András

Szerkesztve: 2025

Licenc: CC Attribution-Share Alike 4.0 International

Web: https://szit.hu

Morgan

Webhely:

https://www.npmjs.com/package/morgan (2025)

Telepítsük a morgan csomagot:

npm install morgan

Példa projekt

import Router from 'express' const router = Router() router.get('/msg', (req, res) => { res.json({ message: 'Működik' }) }) export default router
import express from 'express' import router from './api.js' import morgan from 'morgan' const app = express() app.use(morgan('dev')) app.use(router) const PORT = process.env.PORT || 8000 app.listen(PORT, () => { console.log(`Server is running on port ${PORT}`) })

Paraméterek

Paraméterként megadható:

combined

dev

short

tiny

Ha nem adunk meg paramétert figyelmeztetést kapunk, hogy így használni elavult, de az alapértelmezés ilyenkor a combined.

Indítás

Indítsuk el a szervert, például:

node app

Teszteljük egy HTTP klienssel. Legyen a res 1) Telepítés: npm i -g resen parancs:

res localhost:8000/msg

Abban a terminálban ahol elindítottuk az API szervert, most némi információt látunk a kérésről.

Például:

GET /msg 200 1.758 ms - 23

Írás fájlba

A naplót fájlba is írhatjuk. Ehhez szükség lesz az fs függőségre. Ezt nem szükséges csomagként telepíteni, mert alapértelmezetten rendelkezésre áll.

Az api.js nem változik:

import Router from 'express' const router = Router() router.get('/msg', (req, res) => { res.json({ message: 'Működik' }) }) export default router

Az index.js-ben:

const express = require('express') const morgan = require('morgan') const app = express() const fs = require('fs') const router = require('./api') const logfile = 'access.log' var accessLogStream = fs.createWriteStream(logfile, { flags: 'a' }) app.use(morgan('dev', { stream: accessLogStream })) app.use('/api', router); app.listen(8000, () => { console.log('Listening on port: 8000') })

Log könyvtár

//... if (!fs.existsSync('./logs')) { fs.mkdirSync('./logs'); } const logfile = './logs/access.log'; var accessLogStream = fs.createWriteStream(logfile, { flags: 'a' }); app.use(morgan('combined', { stream: accessLogStream })); //...