ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Как правильно писать логи из функции-обработчика запросов?


  • To: nginx-ru@xxxxxxxxx
  • Subject: Как правильно писать логи из функции-обработчика запросов?
  • From: "Sergey S." <neavirc@xxxxxxxxx>
  • Date: Tue, 11 Mar 2008 08:05:00 -0700
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=AfpsvfLFMhfXac+1vRCQvB7BjX+6SkHvdaH89HH9L8Y=; b=QsCdduintKn1xo5KjpBeF+RFUVWinSvHVL2sn9EWg6+NLxLYfYcdPI0DV3bm4OTwO7nYP59FsY0QHn217MiaVdx2wCqknWh5UA4cIU5ISjovKabgHnE5Xjc7qE1jrh0/3Mh7bUQopb2G67ZJKW9tQltjw8feAG/qFPWgtgZujYA=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=svUIaAGPKOPIpR0olvaAsc6+N1knmkDxUROqflLbUs3nIXjTks1DV+9Ac45W/p7a+cb/JyLun6ZO0hAPxFhRS4Z9sDRD3acK9qbD/HAnKFC3Vn6qqmMMfCIOoBSNaYgCXPtkthcXJi6e/vjs29PIQhxnxUO23Y+SeVCNhnw+EY8=

Здравствуйте.

Написал простенький handler, но почему-то не получается писать из него логи с помощью ngx_log_error. nginx запускается с директивой "daemon off"; в других местах (например в ngx_http_test_merge_loc_conf) ngx_log_error работает как надо.

Делал так. Когда встречается директива "mytest":

static ngx_command_t  ngx_http_test_commands[] = {
    // Install http-handler                                                                                                                                                                                   
    { ngx_string("mytest"),
      NGX_HTTP_MAIN_CONF|NGX_CONF_NOARGS,
      ngx_http_test_install_handler, // <<---------------------------------
      NGX_HTTP_LOC_CONF_OFFSET,
      0,
      NULL },
// ...
      ngx_null_command
}

Запускается установщик обработчика:

static char* ngx_http_test_install_handler(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{
  ngx_http_core_loc_conf_t* clcf = static_cast<ngx_http_core_loc_conf_t*>(ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module));
  clcf->handler = ngx_http_test_handler;

  return NGX_CONF_OK;
}

Сам же обработчик выгладит очень просто:

static ngx_int_t ngx_http_test_handler(ngx_http_request_t *r)
{
  ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "test"); // Это сообщение никогда не отображается
  return NGX_OK;
}

Я где-то ошибся? Пробовал устанавливать обработчик через ngx_http_test_init - не помогло.

--
С уважением,
Сергей Самохин.


 




Copyright © Lexa Software, 1996-2009.