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