Вхождение в httpd access_log, как только API - PullRequest
0 голосов
/ 03 ноября 2018

В журналах доступа httpd я хочу получить журнал, как только будет запущен API. При текущей конфигурации журнала доступа в httpd.conf (ниже) журналы API поступают только тогда, когда приходит ответ

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b %{ms}T \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b %{ms}T" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b %{ms}T \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    #CustomLog "logs/access_log" common

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    CustomLog "logs/access_log" combined
</IfModule>

Пример вывода, который я получаю в access_logs

1.187.15.66 - - [03 / Nov / 2018: 08: 16: 10 +0000] "POST / v13 / user / login HTTP / 1.1" 200 1394

1.187.15.66 - - [03 / Nov / 2018: 08: 16: 10 +0000] "POST / v13 / user / login HTTP / 1.1" 200 1394 1556 "-" "Mozilla / 5.0 (совместимо)"

49.14.67.179 - - [03 / Nov / 2018: 08: 16: 11 +0000] "POST / v13 / zvice / detailscard / 9J5EDAR3Y2PZA HTTP / 1.1" 200 37133

49.14.67.179 - - [03 / Nov / 2018: 08: 16: 11 +0000] "POST / v13 / zvice / detailscard / 9J5EDAR3Y2PZA HTTP / 1.1" 200 37133 4254 "-" «Mozilla / 5.0 (совместимый)»

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

Есть ли в httpd.conf конфигурация access_log, которая поможет вставить журнал в файл access_log, как только API будет запущен?

1 Ответ

0 голосов
/ 03 ноября 2018

Не с этими директивами и стандартным модулем ведения журнала, именно так строится ведение журнала Apache.

Однако log_forensic (https://httpd.apache.org/docs/2.4/mod/mod_log_forensic.html) создан именно для этого. У вас меньше контроля, но вы видите журналы до обработки запроса.

Из ссылки:

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

(мой акцент)

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