Уровни ошибок при логировании

В нашем проекте мы используем Monolog Logger, и не смотря на то, что к нему есть комментарии к видам ошибок, мы расширили эти знания и применяем такие правила информирования об ошибках.

/**
* Много данных или часто, к примеру:
* все request/response,
* все sql-запросы в базу
*/
const DEBUG = 100;

/**
* часто, но не много, к примеру:
* результат какой-нибудь проверки по длинному циклу
*/
const INFO = 200;

/**
* не ошибки, не часто и небольшой объем
* дефолтный уровень для логирования вещей вроде:
* пошли к поставщику с запросом по такому-то направлению,
* получили ответ, в нем N билетов, ждали M cекунд
*/
const NOTICE = 250;

/**
* для случаев вроде: 
* пришла ошибка от поставщика, но мы смогли это распарсить
* нет маппинга для отеля (мы его показываем, и даже продать можем, но могут быть проблемы)
* обнаружен конфликт в данных (опять же маппинг не консистентный, к примеру)
*
* для эксепшенов, которые обозначают ошибку, но в данноми конкретном месте мы их умеем хорошо обрабатывать, не роняя весь запрос.
*/
const WARNING = 300;

/**
* для ошибок в коде, непредвиденных эксепшенов
*/
const ERROR = 400;

Если Вы пишите конфиг и хотите выставить какой-либо уровень логирования по-умолчанию, обратите внимание:

  • на проде не должны записываться детальная информация (например debug), потому что лог-файл будет расти очень быстро
  • из-за большого кол-ва логов аггрегатор скорее всего загнется
  • вряд ли на проде нужен детальный лог, а если нужен, то его делают в рамках отдельного канала (по конкретной задачи и в необходимое время, а не постоянно)
  • по-дефолту конфиг пишется так, чтобы др. разработчикам было удобно разрабатывать, а если какому-то разработчику понадобится детальная информация в рамках какой-то задачи, то можно у себя локально указать нужный уровень логирования. Как вы поняли, других не принуждай читать логи определенной задачи (ведь это неудобно), когда ты пишешь код по своей задачи, а читаешь логи по какой-то др. задаче. Другим разработчикам скорее всего важны ошибки системы в целом и кода, который они затрагивают в данный момент.

 

Удачки.

Оцени публикацию:
  • 0,0
Оценили: 0


Предложения и пожелания:

 

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2019 YaPro.Ru

Лебеденко Николай Николаевич
Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter