diff options
Diffstat (limited to 'src/log.c')
-rw-r--r-- | src/log.c | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -10,6 +10,9 @@ static char rcsid[] = "$Id$"; /* * $Log$ + * Revision 1.7 2008/03/03 06:04:18 james + * *** empty log message *** + * * Revision 1.6 2008/03/02 10:37:56 james * *** empty log message *** * @@ -35,7 +38,9 @@ static char rcsid[] = "$Id$"; typedef struct { LOG_SIGNATURE; int do_close; + int rotate; FILE *fp; + char *filename; } File_Log; static void @@ -66,6 +71,9 @@ flog_log (Log * _l, char *buf) fputs (buf, l->fp); fputc ('\n', l->fp); fflush (l->fp); + + if (l->rotate) + rotate_check(l->filename); } @@ -77,11 +85,13 @@ flog_close (Log * _l) File_Log *l = (File_Log *) _l; if (l->fp && l->do_close) fclose (l->fp); + if (l->filename) + free(l->filename); free (l); } Log * -file_log_new (char *fn) +file_log_new (char *fn,int rotate) { File_Log *l; FILE *f; @@ -102,6 +112,8 @@ file_log_new (char *fn) l->close = flog_close; l->fp = f; l->do_close = dc; + l->rotate=rotate; + l->filename=strdup(fn); fput_cp (f, 0xffef); |