👾
Node.js
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Основи Node.js
      • Вступ
      • Модулі Node.js
      • Запуск скриптів модулів в Node.js
      • Структура проєкту, експорт-імпорт, index.js як хаб
      • Модулі CommonJS
      • Модулі MJS
      • Модулі ECMAScript
      • Модулі NPM + базові модулі
      • Глобальні змінні
      • Робота з файлами
    • 2️⃣Консольні додатки
      • Створення консольних додатків
    • 3️⃣Фреймворк Express
      • Про Express
      • Nodemon і запуски скриптів
      • Postman
      • Проміжне ПЗ middleware
      • Передача даних на сервер
      • Роутінг
      • CRUD
      • Налаштування лінтера
    • 4️⃣REST API
      • Змінні оточення
      • Логування
      • REST
      • Методи HTTP
      • CORS
      • Формування URL для REST API
      • Контроллери відсутнього роуту і непередбачуваної помилки
      • Валідація даних Joi
      • Рефакторинг додатку за MVC архітектурою
      • Express автогенератор додатку
    • 5️⃣База даних Mongo.DB
      • Основи MongoDB
      • Налаштування Mongo Atlas
      • Встановлення локальної MongoDB і основні команди
    • 6️⃣ODM Mongoose
      • Mongoose
      • Порядок планування бекенд додатку
      • чорнетка
    • 7️⃣Автентифякація WJT
      • чорнетка
      • чорнетка 2
    • 8️⃣Файли
      • чернетка
    • 9️⃣тестування
      • чернетка
    • 🔟Page 14
      • імейли
    • чорнетка докер
    • чорнетка сокети
    • додаткові матеріали
    • 👷Практика
      • 1️⃣Page 4
      • 2️⃣Page 5
      • 3️⃣Page 6
      • 4️⃣Page 7
      • 5️⃣Page 8
      • 6️⃣Page 9
  • Про мене
    • Про мене
Powered by GitBook
On this page
  1. Теорія
  2. REST API

Логування

PreviousЗмінні оточенняNextREST

Last updated 1 year ago

При запитах з фронтенду на сервер виникає потреба протоколювання. Логування в консолі дозволяє налаштувати модуль . Це проміжна програма (middleware) для протоколювання запитів.

Установка пакета:

terminal
npm i morgan

Імпортуємо morgan в наш index.js:

index.js
const morgan = require("morgan");

А щоб запустити логування прописуємо middleware у коді одразу після створення екземпляра express (app):

index.js
app.use(logger('dev'))

Можна запускати логування тільки, якщо працюємо в девелоперському режимі (див. Змінні оточення).

index.js
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:

Покликання:

Можна використовувати і нестандартні маркери. Докладніше в .

📚
4️⃣
технічній документації
Morgan
morgan