MCPcopy Create free account
hub / github.com/apache/trafficserver / _setup_rolling

Method _setup_rolling

src/proxy/logging/LogObject.cc:694–758  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

692}
693
694void
695LogObject::_setup_rolling(LogConfig *cfg, Log::RollingEnabledValues rolling_enabled, int rolling_interval_sec,
696 int rolling_offset_hr, int rolling_size_mb)
697{
698 if (!LogRollingEnabledIsValid(static_cast<int>(rolling_enabled))) {
699 m_rolling_enabled = Log::NO_ROLLING;
700 m_rolling_interval_sec = 0;
701 m_rolling_offset_hr = 0;
702 m_rolling_size_mb = 0;
703 if (rolling_enabled != Log::NO_ROLLING) {
704 Warning("Valid rolling_enabled values are %d to %d, invalid value "
705 "(%d) specified for %s, rolling will be disabled for this file.",
706 Log::NO_ROLLING, Log::INVALID_ROLLING_VALUE - 1, rolling_enabled, m_filename);
707 } else {
708 Status("Rolling disabled for %s", m_filename);
709 }
710 } else {
711 // do checks for rolling based on time
712 //
713 if (rolling_enabled == Log::ROLL_ON_TIME_ONLY || rolling_enabled == Log::ROLL_ON_TIME_OR_SIZE ||
714 rolling_enabled == Log::ROLL_ON_TIME_AND_SIZE) {
715 if (rolling_interval_sec < Log::MIN_ROLLING_INTERVAL_SEC) {
716 // check minimum
717 m_rolling_interval_sec = Log::MIN_ROLLING_INTERVAL_SEC;
718 } else if (rolling_interval_sec > Log::MAX_ROLLING_INTERVAL_SEC) {
719 // 1 day maximum
720 m_rolling_interval_sec = Log::MAX_ROLLING_INTERVAL_SEC;
721 } else if (Log::MAX_ROLLING_INTERVAL_SEC % rolling_interval_sec == 0) {
722 // OK, divides day evenly
723 m_rolling_interval_sec = rolling_interval_sec;
724 } else {
725 m_rolling_interval_sec = rolling_interval_sec;
726 // increase so it divides day evenly
727 while (Log::MAX_ROLLING_INTERVAL_SEC % ++m_rolling_interval_sec) {
728 ;
729 }
730 }
731
732 if (m_rolling_interval_sec != rolling_interval_sec) {
733 Note("Rolling interval adjusted from %d sec to %d sec for %s", rolling_interval_sec, m_rolling_interval_sec, m_filename);
734 }
735
736 if (rolling_offset_hr < 0 || rolling_offset_hr > 23) {
737 rolling_offset_hr = 0;
738 Note("Rolling offset out of bounds for %s, setting it to %d", m_filename, rolling_offset_hr);
739 }
740
741 m_rolling_offset_hr = rolling_offset_hr;
742 m_rolling_size_mb = 0; // it is safe to set it as 0, if we set SIZE rolling,
743 // it will be updated later
744 }
745
746 if (rolling_enabled == Log::ROLL_ON_SIZE_ONLY || rolling_enabled == Log::ROLL_ON_TIME_OR_SIZE ||
747 rolling_enabled == Log::ROLL_ON_TIME_AND_SIZE) {
748 if (rolling_size_mb < 10) {
749 m_rolling_size_mb = 10;
750 Note("Rolling size invalid(%d) for %s, setting it to 10 MB", rolling_size_mb, m_filename);
751 } else {

Callers

nothing calls this directly

Calls 3

LogRollingEnabledIsValidFunction · 0.85
StatusClass · 0.50

Tested by

no test coverage detected