error_log_write

Директива `error_log_write` позволяет условно журналировать сообщения об ошибках на основании заданных критериев в конфигурациях NGINX.

Синтаксисerror_log_write [level=log_level] message=text [if=condition];
По умолчаниюnone
Контекстhttp, server, location
Аргументы1-3

Описание

Директива error_log_write является частью ngx_http_error_log_write_module и позволяет условно записывать пользовательские записи в журнал ошибок на основе указанных параметров. Эта директива поддерживается в разных контекстах, включая http, server и location, что даёт гибкость при настройке логирования ошибок на разных уровнях иерархии сервера.

Директива принимает до трёх параметров: level, message и необязательное условие if. Параметр level задаёт степень серьёзности записи журнала (например, info, warn), а параметр message содержит текст, который будет записан в журнал. Условие if определяет, когда запись должна быть сделана. Если условие выполняется (результат оценивается как true), NGINX записывает указанное сообщение с заданным уровнем логирования. Если условие не выполняется и установлен флаг negative, сообщение не будет записано.

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

Пример конфига

server {
    listen 127.0.0.1:80;
    server_name localhost;

    error_log_write message="server test log" if=$arg_test;

    location / {
        error_log_write level=warn message="auth required" if!=$http_authorization;
        auth_basic "auth required";
        auth_basic_user_file conf/htpasswd;
        proxy_pass http://example.upstream.com;
    }
}

Убедитесь, что условие if правильно вычисляется, чтобы избежать непреднамеренных пропусков записей в логах.

Проверьте настройки уровня логирования NGINX, чтобы убедиться, что указанный уровень регистрирует сообщения так, как задумано.

Регулярно пересматривайте условия сопоставления, особенно если эти условия зависят от изменений в логике приложения или параметрах запроса.

← Ко всем директивам