in src/main/cpp/multiprocessrollingfileappender.cpp [89:170]
void MultiprocessRollingFileAppender::activateOptions(Pool& p)
{
if (_priv->rollingPolicy == NULL)
{
auto fwrp = std::make_shared<FixedWindowRollingPolicy>();
fwrp->setFileNamePattern(getFile() + LOG4CXX_STR(".%i"));
_priv->rollingPolicy = fwrp;
}
//
// if no explicit triggering policy and rolling policy is both.
//
if (_priv->triggeringPolicy == NULL)
{
TriggeringPolicyPtr trig = log4cxx::cast<TriggeringPolicy>(_priv->rollingPolicy);
if (trig != NULL)
{
_priv->triggeringPolicy = trig;
}
}
if (_priv->triggeringPolicy == NULL)
{
_priv->triggeringPolicy = std::make_shared<ManualTriggeringPolicy>();
}
{
std::lock_guard<std::recursive_mutex> lock(_priv->mutex);
_priv->triggeringPolicy->activateOptions(p);
_priv->rollingPolicy->activateOptions(p);
try
{
RolloverDescriptionPtr rollover1 =
_priv->rollingPolicy->initialize(getFile(), getAppend(), p);
if (rollover1 != NULL)
{
ActionPtr syncAction(rollover1->getSynchronous());
if (syncAction != NULL)
{
syncAction->execute(p);
}
_priv->fileName = rollover1->getActiveFileName();
_priv->fileAppend = rollover1->getAppend();
//
// async action not yet implemented
//
ActionPtr asyncAction(rollover1->getAsynchronous());
if (asyncAction != NULL)
{
asyncAction->execute(p);
}
}
File activeFile;
activeFile.setPath(getFile());
if (getAppend())
{
_priv->fileLength = activeFile.length(p);
}
else
{
_priv->fileLength = 0;
}
FileAppender::activateOptionsInternal(p);
}
catch (std::exception&)
{
LogLog::warn(
LogString(LOG4CXX_STR("Exception will initializing RollingFileAppender named "))
+ getName());
}
}
}