in src/main/cpp/rollingfileappender.cpp [178:261]
void RollingFileAppender::activateOptions(Pool& p)
{
if (!_priv->rollingPolicy)
{
LogLog::warn(LOG4CXX_STR("No rolling policy configured for the appender named [")
+ _priv->name + LOG4CXX_STR("]."));
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)
{
TriggeringPolicyPtr trig = LOG4CXX_NS::cast<TriggeringPolicy>(_priv->rollingPolicy);
if (trig != NULL)
{
_priv->triggeringPolicy = trig;
}
}
if (!_priv->triggeringPolicy)
{
LogLog::warn(LOG4CXX_STR("No triggering policy configured for the appender named [")
+ _priv->name + LOG4CXX_STR("]."));
_priv->triggeringPolicy = std::make_shared<SizeBasedTriggeringPolicy>();
}
{
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& ex)
{
LogLog::warn(LOG4CXX_STR("Exception activating RollingFileAppender ") + getName(), ex);
}
}
}