Формат сообщения для syslog

Для удобства анализа следует выработать единый формат сообщения, например такой:

[раздел сайта][действие или процесс][результат][прочие теги]: описание сообщения

Раздел сайта

В виде расширяемого справочника:

  • [API] - сообщения API сайта
  • [LK 2.0] - ЛК 2.0
  • [logistic] - логистика
  • [DBI] - DBI (например, обмен)
  • [NSI] - НСИ (например, обмен)

Действие или процесс

Уникальное действие (внутри раздела сайта) или процесс. Для сложных действий можно использовать категория:объект.действие, предпочтение - использовать точку вместо camelCase.

Примеры:

  • [LK 2.0][ws:debt.get]
  • [LK 2.0][ws:order.get]
  • [LK 2.0][ns:partner.access]
  • [LK 2.0][self:invoice]
  • [LK 2.0][self:reserves.correct]
  • [LK 2.0][reclamation:catalog.search]
  • [LK 2.0][1c_import:report.get]
  • [NSI][infobaza:tm.update]
  • [DBI][sellout:mssql.export]
  • [LK 2.0][ws:%s][error][user:%s][uri:%s][http:%s] - шаблон для веб-сервиса

Категории:

  • ws: - обмен с веб-сервисами
  • 1c_import: - стандартный обмен 1С ⇔ Битрикс (так как инициатор 1С)
  • reclamation: - рекламации
  • infobaza: - инфобаза

Действия:

get, access, correct, search, update, export, ...

Результат

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

  • [error] - произошла ошибка
  • [info:ok] - успешное действие
  • [info:start], [info:end] - удобно использовать для длительного процесса, чтобы привязаться к датам

Прочие теги

Описание сообщения

Произвольное сообщение, дополнительные параметры

Примеры

Два реальных примера: ошибка и успешное выполнения действия:

// ошибка
syslog(LOG_ERR, "[LK 2.0][ws:order.detail.get][error][user:20881][uri:http://europes.dev/Plazma/hs/lk20/order_detail/0e10070b-e70b-11e8-8118-00155d049f73]: curl error Couldn't resolve host 'europes.dev'");
 
// информация: успешная операция
syslog(LOG_INFO, "[LK 2.0][ws:order.detail.get][info:ok][user:20881][uri:http://mab.dev/DubrovinPlazma/hs/lk20/order_detail/591da78a-fd06-11e8-8120-00155d040154]");

В логе это выглядит так:

tail /var/log/messages
Jan 23 00:20:24 pushorigin-desktop php: [LK 2.0][ws:order.detail.get][error][user:20881][uri:http://europes.dev/Plazma/hs/lk20/order_detail/0e10070b-e70b-11e8-8118-00155d049f73]: curl error Couldn't resolve host 'europes.dev'
Jan 23 00:20:29 pushorigin-desktop php: [LK 2.0][ws:order.detail.get][info:ok][user:20881][uri:http://mab.dev/DubrovinPlazma/hs/lk20/order_detail/591da78a-fd06-11e8-8120-00155d040154]
Печать/экспорт