es->rotate_index = filename ? fname2index(filename) : 0;
IL_EVENT_ID_FREE(job_id);
- il_log(LOG_DEBUG, " creating event store for id %s, filename %s, rotate index %d\n",
+ il_log(LOG_DEBUG, " creating event store for id %s, filename %s, rotate index %d\n",
job_id_s, es->event_file_name, es->rotate_index);
if(pthread_rwlock_init(&es->commit_lock, NULL))
event_store_rotate_file(struct event_store *es)
{
int num;
+ time_t timestamp = time();
char newname[MAXPATHLEN+1];
/* do not rotate already rotated files */
return 0;
/* find available name */
- /* we give it at most 1024 tries */
- for(num = 0; num < 1024; num++) {
+ /* we give it at most 256 tries */
+ for(num = 0; num < 256; num++) {
struct stat st;
- snprintf(newname, MAXPATHLEN, "%s.%d", es->event_file_name, num);
+ snprintf(newname, MAXPATHLEN, "%s.%d%3d", es->event_file_name, timestamp, num);
newname[MAXPATHLEN] = 0;
if(stat(newname, &st) < 0) {
if(errno == ENOENT) {
es = p->es;
d = p;
// if filename was given, compare it as well
- if((filename == NULL && p->es->rotate_index == 0) ||
+ if((filename == NULL && p->es->rotate_index == 0) ||
(filename != NULL && strcmp(p->es->event_file_name, filename) == 0)) {
if(pthread_rwlock_rdlock(&es->use_lock))
abort();