Include removal of log entries equal to the age to account for rounding

main
Simon Quigley 3 weeks ago
parent 1a920e4e26
commit b31d93b7be

@ -122,13 +122,13 @@ int main(int argc, char* argv[]) {
// Log rotation: Remove logs older than MAX_LOG_AGE_DAYS // Log rotation: Remove logs older than MAX_LOG_AGE_DAYS
int maxLogAgeDays = config["MAX_LOG_AGE_DAYS"].as<int>(); int maxLogAgeDays = config["MAX_LOG_AGE_DAYS"].as<int>();
auto now = fs::file_time_type::clock::now(); // Use the same clock as file_time_type auto now = fs::file_time_type::clock::now();
for (const auto& entry : fs::directory_iterator(LOG_DIR)) { for (const auto& entry : fs::directory_iterator(LOG_DIR)) {
if (entry.is_regular_file()) { if (entry.is_regular_file()) {
auto ftime = fs::last_write_time(entry.path()); auto ftime = fs::last_write_time(entry.path());
auto age = std::chrono::duration_cast<std::chrono::hours>(now - ftime).count() / 24; auto age = std::chrono::duration_cast<std::chrono::hours>(now - ftime).count() / 24;
if (age > maxLogAgeDays) { if (age >= maxLogAgeDays) {
fs::remove(entry.path()); fs::remove(entry.path());
} }
} }

Loading…
Cancel
Save