LoggerAppenderDailyFile
. И не могу понять, бага это или фича.Вот есть конфиг:
<log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/" threshold="all" debug="false"> <appender name="default" class="LoggerAppenderDailyFile"> <param name="datePattern" value="Y-m-d" /> <param name="file" value="logs/%s.log" /> <layout class="LoggerLayoutPattern"> <param name="ConversionPattern" value="%d{H:i:s} %6p: %m%n" /> </layout> </appender> <root> <level value="ALL" /> <appender_ref ref="default" /> </root> </log4php:configuration>
<log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/" threshold="all" debug="false"> <appender name="default" class="LoggerAppenderDailyFile"><param name="file" value="logs/%s.log" /> <param name="datePattern" value="Y-m-d" /><layout class="LoggerLayoutPattern"> <param name="ConversionPattern" value="%d{H:i:s} %6p: %m%n" /> </layout> </appender> <root> <level value="ALL" /> <appender_ref ref="default" /> </root> </log4php:configuration>
datePattern
не применился, и файл назван с использованием дефолтного формата даты (Ymd
). Дело в том, что log4php, разбирая конфигурацию, последовательно читает параметры и для каждого сразу запускает функцию set<ParamName>
. Вот и получается, что, увидев параметр file
он вызывает метод setFile
, а в нем используется datePattern
, а тот еще не задан. Так что для желаемой работы аппендера нужно, чтобы параметр datePattern
задавался раньше.И вот, не знаю теперь, как к этому относиться. Скорее это все же бага, потому что порядок следования нодов в XML не должен быть важен. Да и не должны нас волновать тонкости процесса работы log4php. Однако, деваться нам некуда и будем иметь в виду.
>> порядок следования нодов в XML не должен быть важен
ОтветитьУдалитьВот, например, здесь в комментарии к первому примеру написано, что цепочка фильтров строится в соответствии с положением фильтра в xml.
Если не нарушать и не учитывать порядок, надо было бы, наверное, вводить ещё доп. параметр типа для фильтра.
Наверное, есть ещё много примеров, где порядок объявления в XML всё-таки используется ).
Но применительно к вашему примеру - действительно, совсем некрасиво получается.
Спасибо за предупреждение.