7.4.2.2 Конфигурация по умолчанию назначения лога ошибок
В этом разделе описываются параметры сервера, которые конфигурируют целевое расположение лога ошибок по умолчанию, которое может быть консолью или именованным файлом. Также указано, какие компоненты «потоков логов» (log sink) основывают собственное место назначения вывода на назначение по умолчанию.
В этом обсуждении “консоль” означает stderr, стандартный вывод ошибок. Это ваша терминальная или консольная окно, если стандартный вывод ошибок не был перенаправлен на другое место назначения.
Сервер интерпретирует параметры, определяющие целевое расположение лога ошибок по умолчанию несколько по-разному для систем Windows и Unix. Убедитесь, что вы настраиваете назначение, используя информацию, соответствующую вашей платформе. После того, как сервер интерпретирует параметры целевого расположения лога ошибок по умолчанию, он устанавливает системную переменную log_error, чтобы указать назначение по умолчанию, которое влияет на то, где несколько компонентов потоков логов записывают сообщения об ошибках. В следующих разделах рассматриваются эти темы.
Назначение лога ошибок по умолчанию в Windows
В Windows, mysqld использует параметры --log-error, --pid-file и --console, чтобы определить, является ли целевое расположение лога ошибок по умолчанию консолью или файлом, и, если файлом, то имя файла:
Если задан
--console, целевое расположение по умолчанию — консоль. (--consoleимеет приоритет над--log-error, если оба указаны, и следующие пункты, касающиеся--log-error, не применяются.)Если
--log-errorне указан или указан без указания имени файла, целевое расположение по умолчанию — файл с именемв каталоге данных, если не указан параметрhost_name.err--pid-file. В этом случае имя файла — это имя базового файла PID с суффиксом.errв каталоге данных.Если
--log-errorуказан для именования файла, целевое расположение по умолчанию — этот файл (с добавленным суффиксом.err, если имя не имеет суффикса). Расположение файла находится в каталоге данных, если не указан абсолютный путь для указания другого расположения.
Если целевое расположение лога ошибок по умолчанию — консоль, сервер устанавливает системную переменную log_error в значение stderr. В противном случае целевое расположение по умолчанию — файл, и сервер устанавливает log_error в имя файла.
Назначение лога ошибок по умолчанию в Unix и Unix-подобных системах
В Unix и Unix-подобных системах mysqld использует параметр --log-error для определения того, является ли целевое расположение лога ошибок по умолчанию консолью или файлом, и, если файлом, то имя файла:
Если
--log-errorне указан, целевое расположение по умолчанию — консоль.Если
--log-errorуказан без указания имени файла, целевое расположение по умолчанию — файл с именемв каталоге данных.host_name.errЕсли
--log-errorуказан для именования файла, целевое расположение по умолчанию — этот файл (с добавленным суффиксом.err, если имя не имеет суффикса). Расположение файла находится в каталоге данных, если не указан абсолютный путь для указания другого расположения.Если
--log-errorуказан в файле параметров в разделе[mysqld],[server]или[mysqld_safe], на системах, которые используют mysqld_safe для запуска сервера, mysqld_safe находит и использует параметр, передавая его mysqld.
Обычно при установке пакетов Yum или APT конфигурируется расположение файла лога ошибок в /var/log с параметром, подобным log-error=/var/log/mysqld.log, в файле конфигурации сервера. Удаление имени пути из параметра приводит к использованию файла в каталоге данных. host_name.err
Если целевое расположение лога ошибок по умолчанию — консоль, сервер устанавливает системную переменную log_error в значение stderr. В противном случае целевое расположение по умолчанию — файл, и сервер устанавливает log_error в имя файла.
Как назначение лога ошибок по умолчанию влияет на потоки логов
После интерпретации сервером параметров конфигурации назначения лога ошибок, он устанавливает системную переменную log_error для указания целевого расположения лога ошибок по умолчанию. Компоненты потоков логов могут основывать собственное назначение вывода на значение log_error, или определять своё назначение независимо от log_error.
Если log_error имеет значение stderr, то целевое расположение лога ошибок по умолчанию — консоль, и потоки логов, которые основывают своё назначение вывода на целевом расположении по умолчанию, также пишут в консоль:
log_sink_internal,log_sink_json,log_sink_test: Эти потоки логов записывают в консоль. Это верно даже для таких потоков логов, какlog_sink_json, которые могут быть включены несколько раз; все экземпляры пишут в консоль.log_sink_syseventlog: Этот поток логов записывает в системный журнал, независимо от значенияlog_error.
Если log_error не равно stderr, то целевое расположение лога ошибок по умолчанию — файл, и log_error указывает имя файла. Потоки логов, которые основывают своё назначение вывода на целевом расположении по умолчанию, используют имя файла для наименования выходного файла. (Поток может использовать точно это имя или его вариацию.) Предположим, что значение log_error равно file_name. Тогда потоки логов используют имя, например так:
log_sink_internal,log_sink_test: Эти потоки логов записывают вfile_name.log_sink_json: Последовательные экземпляры этого потока логов, указанные в значенииlog_error_services, записывают в файлы с именамиfile_nameплюс порядковый суффикс.:NN.json,file_name.00.jsonи так далее.file_name.01.jsonlog_sink_syseventlog: Этот поток логов записывает в системный журнал, независимо от значенияlog_error.
© 2025 Oracle
Licensed under the GPLv2 License.