Re: Undefined переменная при логировании

Maxim Dounin mdounin на mdounin.ru
Пн Ноя 9 14:44:23 UTC 2015


Hello!

On Mon, Nov 09, 2015 at 07:53:12PM +0600, Максим wrote:

> >
> > > А самое главное, как решить проблему порчи логов? set на уровне http
> > > очевидно невозможен.
> >
> > Если совсем просто, то так:
> >
> >     uninitialized_variable_warn off;
> >
> > Подробнее - http://nginx.org/r/uninitialized_variable_warn.
> >
> > Ну или можно подумать подробнее над конфигурацией, и, скажем,
> > переделать всё на использование map, http://nginx.org/r/map.
> >
> >
> uninitialized_variable_warn off; выключит записи в error_log, но они как
> раз не беспокоят.
> Проблемой является нарушение формата access_log, так как получается, что
> первого элемента в строчке лога может не быть в некоторых запросах. Парсеры
> страдают, и вообще некрасиво.

Ну как бы у вас переменная, которая в некоторых случаях может быть 
не установленной, и, соответственно, пустой.  С точки зрения 
формата логов штатный путь это обработать - кавычки вокруг 
значения.

> То есть если вместо set я на уровне http пропишу map с тем же смыслом, что
> нынешний set - этот map будет обрабатываться и в случае "плохого" запроса?

Значение map вычисляется в тот момент, когда потребовалось 
значение соответствующей переменной.  Соответственно, если 
значение потребовалось при записи в лог - тогда оно и будет 
вычислено.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru