Логування
При запитах з фронтенду на сервер виникає потреба протоколювання. Логування в консолі дозволяє налаштувати модуль morgan. Це проміжна програма (middleware) для протоколювання запитів.
Установка пакета:
npm i morgan
Імпортуємо morgan в наш index.js:
const morgan = require("morgan");
А щоб запустити логування прописуємо middleware у коді одразу після створення екземпляра express (app):
app.use(logger('dev'))
Можна запускати логування тільки, якщо працюємо в девелоперському режимі (див. Змінні оточення).
if (process.env.NODE_ENV === 'development') app.use(morgan('dev'));
Тепер після кожного запиту на сервер буде виводитися лог в консолі.

Тут використано формат журналу dev. Це по суті рядок - назва налаштування, який визначає формат виведення інформації в консоль.
Є п'ять наперед визначених форматів:
dev - формат журналу з колірним кодуванням (за статусом запиту). Маркер буде пофарбований у зелений колір для кодів успіху, червоний для кодів помилок сервера, жовтий для кодів помилок клієнта, бірюзового для перенаправлення кодів та незабарвлених інформаційних кодів
:method :url :status :response-time ms - :res[content-length]
combined - використовує режим combined сервера Apache для формату журналів
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"
common - використовує режим common сервера Apache для формату журналів
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length]
short - коротше, ніж формат за замовчуванням
:remote-addr :remote-user :method :url HTTP/:http-version :status :res[content-length] - :response-time ms
tiny - найкоротший формат логу, лише час відповіді та кілька додаткових елементів.
:method :url :status :res[content-length] - :response-time ms
Логгер дозволяє обробити журнали аналітичними програмами, що генерують корисну статистику.
Можна створювати власні формати журналу. Для цього потрібно передати спеціальний рядок маркерів. Наприклад, наступний формат :method :url :response-time ms буде створювати записи виду
GET / 15 ms:
Можна використовувати і нестандартні маркери. Докладніше в технічній документації.
Покликання:
Last updated