Перейти до основного вмісту

Логування

Будь-яка програма потребує протоколювання запитів на сервер. Генератор додатків використовує для цього модуль morgan — гнучкий проміжний компонент для протоколювання запитів із можливістю налаштування формату виводу.

Для використання morgan викликається як функція проміжної обробки

const morgan = require('morgan');
...
app.use(logger('dev'))

Для розробки ми використовуємо певний формат журналу dev. Є п'ять наперед визначених форматів, які ми можемо використовувати, щоб легко отримати необхідну інформацію:

  • 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]
  • dev - формат журналу з колірним кодуванням (за статусом запиту) Маркер буде пофарбований у зелений колір для кодів успіху, червоний для кодів помилок сервера, жовтий для кодів помилок клієнта, бірюзового для перенаправлення кодів та незабарвлених інформаційних кодів
:method :url :status :response-time ms - :res[content-length]

logger

  • 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:

За промовчанням доступні наступні маркери. ви також можете визначати нестандартні маркери та перенаправити висновок у файл журналу.