From 7f9189a660abf6dd3a45afdfdd86cf95249fdfcc Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sat, 14 Feb 2009 00:01:41 +0100 Subject: [PATCH] Logging: Implemented log_switch(). --- ucw/log-file.c | 52 +++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/ucw/log-file.c b/ucw/log-file.c index 6b5b3145..65418a29 100644 --- a/ucw/log-file.c +++ b/ucw/log-file.c @@ -117,30 +117,6 @@ log_file(const char *name) log_add_substream(def, ls); } -int -log_switch(void) -{ -#if 0 // FIXME - time_t tim = time(NULL); - return do_log_switch(localtime(&tim)); -#else - return 0; -#endif -} - -void -log_switch_disable(void) -{ - log_switch_nest++; -} - -void -log_switch_enable(void) -{ - ASSERT(log_switch_nest); - log_switch_nest--; -} - /* destructor for standard files */ static void file_close(struct log_stream *ls) @@ -194,10 +170,38 @@ log_new_file(const char *path) time_t now = time(NULL); struct tm *tm = localtime(&now); + ASSERT(tm); do_log_switch(ls, tm); // die()'s on errors return ls; } +int +log_switch(void) +{ + time_t now = time(NULL); + struct tm *tm = localtime(&now); + ASSERT(tm); + + int switched = 0; + for (int i=0; i < log_streams_after; i++) + if (log_streams.ptr[i]->handler == file_handler) + switched |= do_log_switch(log_streams.ptr[i], tm); + return switched; +} + +void +log_switch_disable(void) +{ + log_switch_nest++; +} + +void +log_switch_enable(void) +{ + ASSERT(log_switch_nest); + log_switch_nest--; +} + #ifdef TEST int main(int argc, char **argv) -- 2.39.2