fjpanag commented on a change in pull request #3842: URL: https://github.com/apache/incubator-nuttx/pull/3842#discussion_r645062352
########## File path: drivers/syslog/syslog_filechannel.c ########## @@ -50,6 +54,62 @@ FAR static struct syslog_channel_s *g_syslog_file_channel; +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +#ifdef CONFIG_SYSLOG_FILE_ROTATE +static void log_rotate(FAR const char *log_file) +{ + int fd; + off_t size; + struct stat f_stat; + char * backup_file; + + /* Get the size of the current log file. */ + + fd = open(log_file, O_RDONLY); + if (fd < 0) + { + return; + } + + fstat(fd, &f_stat); + size = f_stat.st_size; + close(fd); + + /* If it does not exceed the limit we are OK. */ + + if (size < CONFIG_SYSLOG_FILE_SIZE_LIMIT) + { + return; + } + + /* Construct the backup file name. */ + + backup_file = malloc(strlen(log_file) + 3); + if (backup_file == NULL) + { + return; + } + + sprintf(backup_file, "%s.0", log_file); + + /* Delete any old backup files. */ + + if (access(backup_file, F_OK) == 0) + { + remove(backup_file); + } + + /* Rotate the log. */ + + rename(log_file, backup_file); + + free(backup_file); Review comment: You can still increase the log file limit if you want to keep all logs for X amount of time. Nevertheless, I will improve this tomorrow, as an option. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org