## Настройка во время выполнения

Поведение функций зависит от установок в файле php.ini.

Опции настройки Seaslog
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
seaslog.appender | 1 | `INI_SYSTEM` |
seaslog.appender_retry | 0 | `INI_ALL` |
seaslog.level | 8 | `INI_ALL` |
seaslog.remote_host | 127.0.0.1 | `INI_ALL` |
seaslog.remote_port | 514 | `INI_ALL` |
seaslog.remote_timeout | 1 | `INI_SYSTEM` |
seaslog.default_basepath | /var/log/www | `INI_SYSTEM` |
seaslog.default_logger | default | `INI_SYSTEM` |
seaslog.default_template | %T | %L | %P | %Q | %t | %M | `INI_SYSTEM` |
seaslog.default_datetime_format | Y-m-d H:i:s | `INI_SYSTEM` |
seaslog.trace_error | 1 | `INI_ALL` |
seaslog.trace_exception | 0 | `INI_SYSTEM` |
seaslog.trace_notice | 0 | `INI_ALL` |
seaslog.trace_warning | 0 | `INI_ALL` |
seaslog.use_buffer | 0 | `INI_SYSTEM` |
seaslog.buffer_size | 0 | `INI_ALL` |
seaslog.buffer_disabled_in_cli | 0 | `INI_SYSTEM` |
seaslog.disting_type | 0 | `INI_SYSTEM` |
seaslog.disting_folder | 1 | `INI_SYSTEM` |
seaslog.disting_by_hour | 0 | `INI_SYSTEM` |
seaslog.recall_depth | 0 | `INI_ALL` |
seaslog.trim_wrap | 0 | `INI_ALL` |
seaslog.ignore_warning | 1 | `INI_ALL` |
seaslog.throw_exception | 1 | `INI_ALL` |

Краткое разъяснение конфигурационных директив.

`seaslog.appender` int
  Переключает хранилище данных журнала записей. 1 - Файл, 2 - TCP, 3 - UDP (по умолчанию 1) SeasLog отправит журнал на сервер tcp://remote_host:remote_port или udp://remote_host:remote_port, если seaslog.appender настроен на `2 (TCP)` или `3 (UDP)`. Когда SeasLog отправляет журнал по TCP/UDP, стиль соответствует RFC5424. `{logInfo}`, на который влияет seaslog.default_template.

      Стиль журнала отформатирован следующим образом:
      <15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
      <14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
      <13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log

`seaslog.appender_retry` int
  Записывает количество повторных попыток журнала. По умолчанию 0 (не записывает)
`seaslog.buffer_disabled_in_cli` int
  Отключает буфер в CLI. 1 - Да, 0 - Нет (по умолчанию) Включите опцию buffer_disabled_in_cli. buffer_disabled_in_cli выключен по умолчанию. Если включить buffer_disabled_in_cli и запустить его в CLI, параметр seaslog.use_buffer будет сброшен, Seaslog НЕМЕДЛЕННО сделает запись в хранилище данных.
`seaslog.buffer_size` int
  Задайте для параметра buffer_size значение 100. Значение buffer_size по умолчанию 0, это означает, что буфер не используется. Если buffer_size > 0, SeasLog перезапишет данные в хранилище, если размер предварительно записанного в память журнала >= buffer_size, а затем обновите опрос памяти.
`seaslog.default_basepath` string
  Базовый путь журнала по умолчанию. По умолчанию "/var/log/www".
`seaslog.default_datetime_format` string
  Стиль DateTime. По умолчанию "Y-m-d H:i:s".
`seaslog.default_logger` string
  Путь к регистратору по умолчанию. По умолчанию "default".
`seaslog.disting_by_hour` int
  Переключает режим регистратора по часам. 1 - Да, 0 - Нет (по умолчанию)

  > Замечание: seaslog.disting_by_hour = 1 переключает режим использования Logger DisTing по часам. Это означает, что SeasLog будет создавать файл каждый час.

`seaslog.disting_folder` int
  Переключает режим использование регистратора по папкам. 1 - Да (по умолчанию), 0 - Нет.

  > Замечание: seaslog.disting_folder = 1 переключает режим использования Logger DisTing по папкам, это означает, что SeasLog будет создавать файлы в папках и при этой настройке закрытия SeasLog создаст файл с подчёркиванием, используя тип регистратора и время, например, default_20180211.log.

`seaslog.disting_type` int
  Переключает режим использования регистратора по типу. 1 - Да, 0 - Нет (по умолчанию)

  > Замечание: seaslog.disting_type = 1 переключает режим использования Logger DisTing по типу, это означает, что SeasLog создаст файл info\warn\error или другого типа.

`seaslog.ignore_warning` int
  Переключает режим игнорирования предупреждений SeasLog. 1 - Да (по умолчанию), 0 - Нет.

  > Замечание: seaslog.ignore_warning = 1 Открывает предупреждение об игнорировании самого SeasLog. Когда права доступа к каталогу или порты сервера приёма заблокированы, они игнорируются; при закрытии выдаётся предупреждение.

`seaslog.level` int
  Уровень записи регистратора. По умолчанию 8 (всё). 0 - EMERGENCY, 1 - ALERT, 2 - CRITICAL, 3 - ERROR, 4 - WARNING, 5 - NOTICE, 6 - INFO, 7 - DEBUG, 8-ALL

  > Замечание: Примечание: элемент конфигурации был изменён, начиная с версии 1.7.0. До версии 1.7.0, чем меньше значение, тем больше записей ведётся в соответствии с уровнем: 0 - всё, 1 - debug, 2 - info, 3-notice, 4-warning, 5-error, 6-critical, 7-alert, 8-emergency. До версии 1.7.0 значение по умолчанию - 0 (всё).

`seaslog.recall_depth` int
  Глубина вызова функции журнала. Будет затронута переменная `LineNo` в `%F`. По умолчанию 0
`seaslog.remote_host` string
  Если вы используете запись TCP или UDP, настройте удалённый IP. По умолчанию "127.0.0.1".
`seaslog.remote_port` int
  Если вы используете запись TCP или UDP, настройте удалённый порт. По умолчанию 514.
`seaslog.remote_timeout` int
  Если вы используете запись TCP или UDP, настройте удалённое время ожидания. По умолчанию 1 секунда
`seaslog.throw_exception` int
  Переключает режим выбрасывания исключения SeasLog. 1 - Да (по умолчанию), 0 - Нет.

  > Замечание: seaslog.throw_exception = 1 Открывает исключение, которое выбрасывает сам SeasLog. Если администрация каталога или порт принимающего сервера заблокированы, выбрасывается исключение; не выбрасывается исключение при закрытии.

`seaslog.trace_error` int
  Автоматическая запись "error" регистратором по умолчанию. 1 - Да (по умолчанию), 0 - Нет.
`seaslog.trace_exception` int
  Автоматическая запись "exception" регистратором по умолчанию. 1 - Да, 0 - Нет (по умолчанию).
`seaslog.trace_notice` int
  Автоматическая запись "notice" регистратором по умолчанию. 1 - Да, 0 - Нет (по умолчанию).
`seaslog.trace_warning` int
  Автоматическая запись "warning" регистратором по умолчанию. 1 - Да, 0 - Нет (по умолчанию).
`seaslog.trim_wrap` int
  Обрезает \n и \r в сообщении журнала. 1 - Да, 0 - Нет (по умолчанию)
`seaslog.use_buffer` int
  Переключает режим использования буфера журнала с памятью. 1 - Да, 0 - Нет (по умолчанию)

  > Замечание: seaslog.use_buffer = 1 Включите configure use_buffer. По умолчанию use_buffer выключен. Если включить use_buffer, SeasLog будет предварительно записывать журнал в память и он будет перезаписан в хранилище данных путём завершения запроса или выхода из процесса PHP (PHP RSHUTDOWN или PHP MSHUTDOWN).

`seaslog.default_template` string
  Шаблон журнала по умолчанию. По умолчанию "%T | %L | %P | %Q | %t | %M".

  > Замечание: Предоставляются следующие переменные по умолчанию, которые можно использовать непосредственно в шаблоне журнала и заменять соответствующим значением при создании журнала. Шаблон журнала по умолчанию: `seaslog.default_template = "%T | %L | %P | %Q | %t | %M"`, это означает, что стиль журнала по умолчанию: `{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}` Если вы используете собственный шаблон журнала, например: `seaslog.default_template = "[%T]:%L %P %Q %t %M"`, это будет означать, что стиль журнала был настроен как: `[{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}`

  > Таблица переменных по умолчанию Seaslog
  > Variable Name | Описание
  > --- | ---
  > %L | Уровень.
  > %M | Сообщение.
  > %T | DateTime. Такое как `2017-08-16 19:15:02`, затронутое `seaslog.default_datetime_format`.
  > %t | Timestamp. Такое как `1502882102.862`, с точностью до миллисекунд.
  > %Q | RequestId. Чтобы различать один запрос, например, не вызывать функцию `SeasLog::setRequestId($string)`, при инициализации запроса используется уникальное значение, сгенерированное встроенной функцией `static char *get_uniqid()`.
  > %H | HostName.
  > %P | ProcessId.
  > %D | Domain:Port. Такое как `www.cloudwise.com:80`; Если CLI, то `cli`.
  > %R | URI запроса. Такой как `/app/user/signin`; Если CLI, то, например `CliIndex.php`.
  > %m | Метод запроса. Такой как `Get`; Если CLI, то, используется команда, например, `/bin/bash`.
  > %I | IP-адрес клиента; Если CLI, то `local`. Приоритет значений: HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
  > %F | FileName:LineNo. Такое как `UserService.php:118`.
  > %U | MemoryUsage в байтах. Вызов `zend_memory_usage`.
  > %u | PeakMemoryUsage в байтах. Вызов `zend_memory_peak_usage`.
  > %C | `TODO` Class::Action. Такое как `UserService::getUserInfo`

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open