Нет, нет.Фактически, в log4j также не реализована такая комбинированная политика, поэтому она не была перенесена в log4cxx.
Когда-то у меня была задача написать такой смешанный апплет для файла с произвольной политикой (хотя в log4j).Я сделал это, переопределив FileAppender
, особеннометод
// log4j
void setFile(String fileName, boolean append, boolean bufferedIO, int bufferSize);
// log4cxx
void setFile(const LogString& filename, bool append1, bool bufferedIO1, size_t bufferSize1, Pool& p);
для продолжения регистрации в соответствующем блоке журнала после перезапуска процесса и
// log4j
void subAppend(LoggingEvent event);
// log4cxx
virtual void append(const spi::LoggingEventPtr& event, log4cxx::helpers::Pool& p);
для проверки после каждой записи журнала, выполняется ли условие для пролонгации.
Действительно мощная особенность реализации вашего собственного appender в log4j / cxx состоит в том, что вы можете определить его свойства в log4j.properties
и задать их в библиотеке.В Java вы получаете это бесплатно, благодаря рефлексии;в log4cxx вам нужно только написать свой метод
void setOption(const LogString& option, const LogString& value);
, в котором вы выполняете итерацию по строкам опций и выполняете необходимые действия по инициализации.
Надеюсь, что это поможет и придет в нужное время.